jquery 如果已选择其中任何一个,则脚本不会检测

oknrviil  于 2023-02-08  发布在  jQuery
关注(0)|答案(1)|浏览(127)

我有一个正常工作的需要复选框的脚本。
但我解决不了的问题是:如果其中任何一个已经被选中,脚本不会检测到选中的一个,并说选择。它的工作,当你点击至少一次。我该怎么办,我会很感激,如果你能帮助,谢谢。
DEMO(正常工作)
MY DEMO(任何已选定的项)

<div class="options111">
 a : <input type="checkbox" name="a" class="check" required><br>
 b : <input type="checkbox" name="b" class="check" required><br>
 c : <input type="checkbox" name="c" class="check" required><br>
 d : <input type="checkbox" name="d" class="check" required><br>
 e : <input type="checkbox" name="e" class="check" required checked><br>   
     </div>


$(function(){ // checkbox REQUIRED
    var requiredCheckboxes = $('.options111 :checkbox[required]');
    requiredCheckboxes.change(function(){
        if(requiredCheckboxes.is(':checked')) {
            requiredCheckboxes.removeAttr('required');
        } else {
            requiredCheckboxes.attr('required', 'required');
        }
    });
});

我试图用类似的例子做一些修改,但是我失败了。有不同的例子,但是这个脚本对我来说很理想,因为我是用 AJAX Load发送表单的。

ukxgm1gy

ukxgm1gy1#

这是因为您要将用于移除required属性的函数附加到change方法。
您可以做的是在执行任何操作之前运行一次内部函数,并将该函数附加到更改处理程序

$(function(){
    var requiredCheckboxes = $('.options :checkbox[required]');
    var changeFunction = function(){
        if(requiredCheckboxes.is(':checked')) {
            requiredCheckboxes.removeAttr('required');
        } else {
            requiredCheckboxes.attr('required', 'required');
        }
    }
    requiredCheckboxes.change(changeFunction);
    changeFunction()
});

相关问题