取消选中复选框时jQuery.removeClass/.toggleClass不工作
我在一个页面上有几个复选框,名称和id=selectArticle[]。我需要的是,每当用户选中复选框时,某些元素应该附加class=“required”,当我取消选中同一复选框时,class=“required”应该被删除 我尝试过.addClass和.removeClass,但是每当我取消选中复选框时,.remove效果就不会发生。但是,当我再次选中该复选框时(在.toggleClass的情况下),该类可以完美地切换。它似乎只对复选框“checked”事件有效,而不是未选中 通过alert,我已经检查过了,两个检查/取消检查事件都被完美地触发了,但是.removeClass/.toggleClass根本不起作用 我如何纠正这个问题。请帮帮我取消选中复选框时jQuery.removeClass/.toggleClass不工作,jquery,Jquery,我在一个页面上有几个复选框,名称和id=selectArticle[]。我需要的是,每当用户选中复选框时,某些元素应该附加class=“required”,当我取消选中同一复选框时,class=“required”应该被删除 我尝试过.addClass和.removeClass,但是每当我取消选中复选框时,.remove效果就不会发生。但是,当我再次选中该复选框时(在.toggleClass的情况下),该类可以完美地切换。它似乎只对复选框“checked”事件有效,而不是未选中 通过alert,
$("input[name='selectArticle[]']:checkbox").live('change',function(){
var n = $("input[name='selectArticle[]']:checked").length;
var id=$(this).val();
var v = $(this).is(':checked');
//var vr= $("input[name='selectArticle[]']:unchecked").val();
//var vr= $(this).val();
alert(v);
alert(id);
//alert("url"+v);
if($(this).is(':checked'))
{
alert('#url'+v);
$("#title"+id).toggleClass('required');
$("#id"+id).toggleClass('required');
$("#url"+id).toggleClass('required url');
$("#category"+id).toggleClass('required');
$("#group"+id).toggleClass('required');
}
else
{
alert("balls"+id);
("#title"+id).toggleClass('required');
$("#id"+id).toggleClass('required');
$("#url"+id).toggleClass('required url');
$("#category"+id).toggleClass('required');
$("#group"+id).toggleClass('required');
}
// $("div").text(n + (n <= 1 ? " is" : " are") + " checked!" + " value :" + v);
});
$(“输入[name='selectArticle[]']:复选框”).live('change',function()){
var n=$(“输入[name='selectArticle[]']:选中”).length;
var id=$(this.val();
var v=$(this).is(':checked');
//var vr=$(“输入[name='selectArticle[]']:未选中”).val();
//var vr=$(this.val();
警戒(五);
警报(id);
//警报(“url”+v);
如果($(this).is(':checked'))
{
警报(“#url”+v);
$(“#title”+id).toggleClass('required');
$(“#id”+id).toggleClass('required');
$(“#url”+id).toggleClass('required url');
$(“#类别”+id).toggleClass('required');
$(“#组”+id).toggleClass('required');
}
其他的
{
警报(“球”+id);
(“#title”+id).toggleClass('required');
$(“#id”+id).toggleClass('required');
$(“#url”+id).toggleClass('required url');
$(“#类别”+id).toggleClass('required');
$(“#组”+id).toggleClass('required');
}
//$(“div”).text(n+)(nMmm
:未选中的
不是有效的jQuery选择器。请仅尝试使用else
或:
if(!$(this).is(':checked'))
嗯
:未选中的
不是有效的jQuery选择器。请仅尝试使用else
或:
if(!$(this).is(':checked'))
因为toggleClass
不起作用,请尝试
if($(this).is(':checked'))
{
$("#title"+id).removeClass('required');
...
}
else
{
$("#title"+id).addClass('required');
...
}
确保您的var id=$(this.val();
包含有效的内容,因为(“#title”+id)
,$(“#id”+id)
和其他使用相同变量的人。因为切换类
不起作用,请尝试
if($(this).is(':checked'))
{
$("#title"+id).removeClass('required');
...
}
else
{
$("#title"+id).addClass('required');
...
}
确保您的var id=$(this.val();
包含有效的内容,因为(“#title”+id)
,$(“#id”+id)
和其他使用相同变量的语句。原始问题的问题是更新中有两个IF语句。第一个语句在复选框被选中时取消选中该框,但第二个IF语句将重新选中该框,因为它现在被取消选中
如果你仍然有这样的设置,那么任何东西都不会正常工作,因为你只是在来回翻转状态。确保你只有一个If-a-then-B-ELSE-C,而不是一个If-a-then-B后跟一个If-B-then-a
希望这有帮助。:-原始问题的问题是更新中有两个IF语句。第一个IF语句在选中时取消选中该框,但第二个IF语句将重新选中该框,因为它现在已取消选中
如果你仍然有这样的设置,那么任何东西都不会正常工作,因为你只是在来回翻转状态。确保你只有一个If-a-then-B-ELSE-C,而不是一个If-a-then-B后跟一个If-B-then-a
希望这能有所帮助。:-是的,它们是独一无二的……因此,当检查时,它们会正确发射。没有任何理由(坦白说,没有借口)要做一个else if
这只是if
条件的倒数。如果不检查它,那么if
条件将失败,因此您只需要一个else
。同意,我目前只有一个“else”…但它不起作用:((是的,它们是唯一的…因此,当检查时,它们会正确触发。)没有任何原因(坦率地说,没有借口)做一个else if
这只是if
条件的倒数。如果不检查它,那么if
条件将失败,所以你只需要一个else
。同意,我目前只有一个“else”…但它不起作用:((完成,上面编辑,仍然不起作用。我已经试过了earlier@SunnyD'Souza将if
中的.toggleClass()
更改为.addClass()
,并将else
中的更改为.removeClass()
,然后试试看。好的,只是这样做了,但不起作用。它显示出相同的行为…选中时,它会添加类,但未选中时,它不会删除它:((完成,上面编辑,仍然不起作用。我已经试过了。)earlier@SunnyD'Souza将if
中的.toggleClass()
更改为.addClass()
,然后在的else
中添加到.removeClass()
,然后尝试该操作。好的,刚刚执行了该操作,但不起作用..它显示相同的行为…选中时,它会添加类,但未选中时,它不会删除该类:((addClass
和removeClass
而不是toggleClass
好的,只是这样做了,但不起作用..它显示相同的行为…选中时,它会添加类,但未选中时,它不会删除它:((我再次更改了答案,请再次检查if checked removeClass
elseaddClass
我使用了一个警报(id),它在两个选中/未选中的案例中都显示了正确的id问题解决了,问题是一个愚蠢的语法错误(#title“+id)。removeClass('required');应该是$(#title“+id)。removeClass('required'))addClass
和removeClass
而不是toggleClass
好的,只是这样做了,但不起作用..它显示出相同的行为…选中时,它会添加类,但不选中时,它不会删除它:((我再次更改了答案,请