多个复选框具有相同名称的必需属性?

这个问题在这里已经有了答案:

  • 对一组复选框使用HTML5“required”属性? 9个答案

  • 对不起,现在我已经阅读了你期望的更好,所以我正在更新答案。

    基于W3C的HTML5规范,没有任何问题。 我创建了这个JSFiddle测试,并且基于规范正确运行(对于基于规范的浏览器,如Chrome 11和Firefox 4):

    <form>
        <input type="checkbox" name="q" id="a-0" required autofocus>
        <label for="a-0">a-1</label>
        <br>
    
        <input type="checkbox" name="q" id="a-1" required>
        <label for="a-1">a-2</label>
        <br>
    
        <input type="checkbox" name="q" id="a-2" required>
        <label for="a-2">a-3</label>
        <br>
    
        <input type="submit">
    </form>

    你可以使用jQuery制作更少的行:

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

    使用$(':checkbox [required]')选择所有需要属性的复选框,然后,将.change方法应用于这组复选框,可以在该组中的任何项目发生更改时执行所需的功能。 在这种情况下,如果选中任何复选框,我将删除属于所选组的所有复选框的必需属性。

    我希望这有帮助。

    告别。


    我有同样的问题,我的解决方案是将所需的属性应用于所有元素

    <input type="checkbox" name="checkin_days[]" required="required" value="0" /><span class="w">S</span>
    <input type="checkbox" name="checkin_days[]" required="required" value="1" /><span class="w">M</span>
    <input type="checkbox" name="checkin_days[]" required="required" value="2" /><span class="w">T</span>
    <input type="checkbox" name="checkin_days[]" required="required" value="3" /><span class="w">W</span>
    <input type="checkbox" name="checkin_days[]" required="required" value="4" /><span class="w">T</span>
    <input type="checkbox" name="checkin_days[]" required="required" value="5" /><span class="w">F</span>
    <input type="checkbox" name="checkin_days[]" required="required" value="6" /><span class="w">S</span>
    

    当用户检查其中一个元素时,我从所有元素中删除所需的属性:

    var $checkedCheckboxes = $('#recurrent_checkin :checkbox[name="checkin_days[]"]:checked'),
        $checkboxes = $('#recurrent_checkin :checkbox[name="checkin_days[]"]');
    
    $checkboxes.click(function() {
    
    if($checkedCheckboxes.length) {
            $checkboxes.removeAttr('required');
        } else {
            $checkboxes.attr('required', 'required');
        }
    
     });
    
    链接地址: http://www.djcxy.com/p/56091.html

    上一篇: Required attribute on multiple checkboxes with the same name?

    下一篇: Get checkbox list values with jQuery