取消选中复选框时jQuery.removeClass/.toggleClass不工作

取消选中复选框时jQuery.removeClass/.toggleClass不工作,jquery,Jquery,我在一个页面上有几个复选框,名称和id=selectArticle[]。我需要的是,每当用户选中复选框时,某些元素应该附加class=“required”,当我取消选中同一复选框时,class=“required”应该被删除 我尝试过.addClass和.removeClass,但是每当我取消选中复选框时,.remove效果就不会发生。但是,当我再次选中该复选框时(在.toggleClass的情况下),该类可以完美地切换。它似乎只对复选框“checked”事件有效,而不是未选中 通过alert,

我在一个页面上有几个复选框,名称和id=selectArticle[]。我需要的是,每当用户选中复选框时,某些元素应该附加class=“required”,当我取消选中同一复选框时,class=“required”应该被删除

我尝试过.addClass和.removeClass,但是每当我取消选中复选框时,.remove效果就不会发生。但是,当我再次选中该复选框时(在.toggleClass的情况下),该类可以完美地切换。它似乎只对复选框“checked”事件有效,而不是未选中

通过alert,我已经检查过了,两个检查/取消检查事件都被完美地触发了,但是.removeClass/.toggleClass根本不起作用

我如何纠正这个问题。请帮帮我

       $("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
else
addClass
我使用了一个警报(id),它在两个选中/未选中的案例中都显示了正确的id问题解决了,问题是一个愚蠢的语法错误(#title“+id)。removeClass('required');应该是$(#title“+id)。removeClass('required'))
addClass
removeClass
而不是
toggleClass
好的,只是这样做了,但不起作用..它显示出相同的行为…选中时,它会添加类,但不选中时,它不会删除它:((我再次更改了答案,请