多个复选框具有相同名称的必需属性?
这个问题在这里已经有了答案:
对不起,现在我已经阅读了你期望的更好,所以我正在更新答案。
基于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?