Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选择组中的单选按钮时的jQuery addClass_Javascript_Jquery_Forms_Radio - Fatal编程技术网

Javascript 选择组中的单选按钮时的jQuery addClass

Javascript 选择组中的单选按钮时的jQuery addClass,javascript,jquery,forms,radio,Javascript,Jquery,Forms,Radio,我有以下代码: var selectedMarkerClass = 'was-selected'; $('.group_1').change(function() { $(this).addClass(selectedMarkerClass); if ($('.' + selectedMarkerClass).length == $('.group_1').length) { $('#2').removeClass('red'); } }); 以下是

我有以下代码:

var selectedMarkerClass = 'was-selected';

$('.group_1').change(function() {
    $(this).addClass(selectedMarkerClass);

    if ($('.' + selectedMarkerClass).length == $('.group_1').length) {
        $('#2').removeClass('red');
    }
});
以下是所讨论的HTML:

<input class="single_text_input group_1" type="text" name="primary_referral" />
<input class="single_text_input group_1" type="text" name="secondary_referral" />
<input class="group_1" type="radio" name="referral_open" value="Yes" /> Yes
<input class="group_1" type="radio" name="referral_open" value="No" /> No
<span id="2" class="red">Referral Group</span>

对
不
转诊组

现在的情况是,必须更改组中的两个单选按钮,才能将类从
span
中删除。我希望它在只需更改组中的一个单选按钮的情况下工作。

使用
单击
事件,而不是
更改
事件

$('.group_1').click(function() {
    $(this).addClass(selectedMarkerClass);

    if ($('.' + selectedMarkerClass).length == $('.group_1').length) {
        $('#2').removeClass('red');
    }
});
更新:

if ($('.' + selectedMarkerClass).length == $('.group_1').length)
你被绊倒了。仅当所选类别已添加到每个收音机时,您才删除红色类别,并且仅当单击每个收音机时,您才能添加所选类别

更好的办法是:

$('.group_1').click(function() {
    $('#2').removeClass('red');
});

代码越少越好。你不能取消选择收音机。因此,对收音机的任何单击都确保至少有一个被单击。

使用
单击事件而不是
更改
事件

$('.group_1').click(function() {
    $(this).addClass(selectedMarkerClass);

    if ($('.' + selectedMarkerClass).length == $('.group_1').length) {
        $('#2').removeClass('red');
    }
});
更新:

if ($('.' + selectedMarkerClass).length == $('.group_1').length)
你被绊倒了。仅当所选类别已添加到每个收音机时,您才删除红色类别,并且仅当单击每个收音机时,您才能添加所选类别

更好的办法是:

$('.group_1').click(function() {
    $('#2').removeClass('red');
});

代码越少越好。你不能取消选择收音机。因此,任何对收音机的点击都确保至少有一个被点击。

请尝试使用
点击
事件。您会看到更改发生在第二次单击之后,因为第一个单选按钮失去焦点后,
change
被触发。

请改用
click
事件进行尝试。您会在第二次单击后看到更改,因为第一个单选按钮失去焦点后触发了
change

两个单选按钮更改后,
$('..+selectedMarkerClass)。长度==2
$('.group_1')).length==4
,因为您对单选按钮和输入[type=text]使用了
.group_1

需要筛选您的单选按钮,请使用
“[name=reference\u open]”


两个单选按钮都更改后,
$('.'.+选择MarkerClass).length==2
$('.group_1')。length==4
,因为您将
.group_1
类用于单选按钮和输入[type=text]

需要筛选您的单选按钮,请使用
“[name=reference\u open]”



我很抱歉没有在第一轮中包括它。我已经更新了我的帖子。你检查过.length的数值了吗?将它写到console.info或屏幕上。现在发生的事情是,必须更改组中的两个单选按钮,才能将类从范围中删除。我希望它能在只需更改组中的一个单选按钮的情况下工作。很抱歉,我没有在第一轮中包含它。我已经更新了我的帖子。你检查过.length的数值了吗?将它写到console.info或屏幕上。现在发生的事情是,必须更改组中的两个单选按钮,才能将类从范围中删除。我希望它能在只需更改组中的一个单选按钮的情况下工作。这似乎产生了与我现在相同的结果。我必须单击组中的每一个按钮,它才能工作。@user1647550添加了对问题的深思熟虑的解释和更好的解决方案。非常感谢您抽出时间。也许我误解了您的解决方案,但我试图完成的是,一旦某个类(组_1)的所有输入元素都被单击(或者,最好是被更改),就从跨度中删除一个类。输入元素将是一个混合包、收音机、文本、复选框等。。。再次感谢您的帮助@anonymous down voting是lame@user1647550您最后的评论与您的OP不同。您说“我希望它在只需更改组中的一个单选按钮的情况下工作。”我提出了问题的解决方案。我不会根据你不断变化的需求不断发展。听起来你需要一个新问题。你说得对。你正确地回答了我提出的问题。我不应该假设您会按照我提供的代码所遵循的路径。我感谢你的时间和努力,我认为你的回答是正确的。尽管它对我来说毫无用处,但它是对我所问问题的正确解释,并且可能对未来的人有所帮助。这似乎产生了与我现在所得到的相同的结果。我必须单击组中的每一个按钮,它才能工作。@user1647550添加了对问题的深思熟虑的解释和更好的解决方案。非常感谢您抽出时间。也许我误解了您的解决方案,但我试图完成的是,一旦某个类(组_1)的所有输入元素都被单击(或者,最好是被更改),就从跨度中删除一个类。输入元素将是一个混合包、收音机、文本、复选框等。。。再次感谢您的帮助@anonymous down voting是lame@user1647550您最后的评论与您的OP不同。您说“我希望它在只需更改组中的一个单选按钮的情况下工作。”我提出了问题的解决方案。我不会根据你不断变化的需求不断发展。听起来你需要一个新问题。你说得对。你正确地回答了我提出的问题。我不应该假设您会按照我提供的代码所遵循的路径。我感谢你的时间和努力,我认为你的回答是正确的。尽管它对我来说毫无用处,但它是对我所问问题的正确解释,可能对将来的人有所帮助。谢谢@K.K的回答。它能满足我的需要。我试图避免这种解决方案,因为我正在使用的表单上有太多单选按钮组(超过4oo个字段),并且希望不要为每组单选按钮创建脚本。再次感谢!谢谢@K.K的回答。它能满足我的需要。我试图避免