Jquery 在运行更改了特定属性的函数后,计算具有特定属性的当前输入数

Jquery 在运行更改了特定属性的函数后,计算具有特定属性的当前输入数,jquery,forms,prop,Jquery,Forms,Prop,关于这个问题: 我得到了很好的帮助,完成了这个功能 $('input[type=submit]').prop('disabled', true).addClass('disabled'); var required = $('[required]'); required.bind('change keyup', function() { var flag = 0; required.each(function()

关于这个问题:

我得到了很好的帮助,完成了这个功能

    $('input[type=submit]').prop('disabled', true).addClass('disabled');

    var required = $('[required]');

    required.bind('change keyup', function()
    {
        var flag = 0;
        required.each(function()
        {   
            if ($(this).not(':checkbox, :radio').val() || $(this).filter(':checked').val())
            {
                flag++;
            }
        });

        if (flag == required.length)
        {
            $('input[type=submit]').prop('disabled', false).removeClass('disabled');
        }
        else
        {
            $('input[type=submit]').prop('disabled', true).addClass('disabled');
        }
    });
这里发生的情况是表单的submit按钮一直处于禁用状态,直到具有必需属性的所有字段都具有某种值或已被选中,等等

另一个工作良好的jQuery函数是根据选择框的值隐藏其中一些字段,这是一个更大的画面的一部分

实际上,当这些字段被隐藏时,应该删除所需的属性。删除required属性后,我希望上面的函数只计算剩余的required.length字段,但事实上,它会计算所有字段,甚至那些不再具有required属性的字段


有没有办法解决这个问题的想法?

您正在反复比较同一组元素。您需要在每次检查期间重新选择所需的

改变

required.each(function()


您正在选择所有元素,然后在它们之间循环,而不考虑它们现在具有的属性。您希望jQuery重新选择现在具有必需属性的元素,以便获得更新的列表。然后,这将按预期执行。

您正在反复比较同一组元素。您需要在每次检查期间重新选择所需的

改变

required.each(function()

您正在选择所有元素,然后在它们之间循环,而不考虑它们现在具有的属性。您希望jQuery重新选择现在具有必需属性的元素,以便获得更新的列表。然后,这应该按照您的预期执行。

您不仅已经移除了所需的阿曲布他,而且还移除了1。取消绑定此元素2的“更改键控”。使用required=required.not“[required]”将其从集合中删除

给出了基本思路:在你们点击按钮之前,两个必需的输入都会提醒他们的号码,在你们点击按钮之后,总长度会减少,第二个输入会停止提醒

如果您再次要求更改密钥,请不要忘记将其绑定。

您不仅删除了所需的atribute,而且还删除了1。取消绑定此元素2的“更改键控”。使用required=required.not“[required]”将其从集合中删除

给出了基本思路:在你们点击按钮之前,两个必需的输入都会提醒他们的号码,在你们点击按钮之后,总长度会减少,第二个输入会停止提醒

如果您再次要求更改密钥,请不要忘记绑定该密钥

您可以添加:

|| $(this).css('display') === 'none')
在if-around标志++。

中,您可以添加:

|| $(this).css('display') === 'none')

到if-around标志++。

您可以重新选择它们,而不是将所选元素存储在所需的变量中。您可以重新选择它们,而不是将所选元素存储在所需的变量中。我觉得错过了这一点很傻。。。哦,好吧,至少我不会再犯同样的错误了!!谢谢,这基本上就是我需要它做的。我觉得我错过了这个很傻。。。哦,好吧,至少我不会再犯同样的错误了!!谢谢,这基本上就是我需要它做的。再次感谢你的帮助,弗拉德克拉斯@在这个场合,施莱斯想出了最好的答案。但我真的很感谢你提供了这个解决方案,并且非常友好地抽出时间再次帮助我。谢谢。@PHPNewbGallery这很奇怪,因为当您删除Required attr-时,您无法从元素中解除事件绑定,再次感谢您的帮助,vladkras@在这个场合,施莱斯想出了最好的答案。但我真的很感谢你提供了这个解决方案,并且非常友好地抽出时间再次帮助我。谢谢。@PHPNewbGallery这很奇怪,因为当您删除Required attr-时,并不需要您从元素中取消绑定事件,