我有4个复选框(全部,星期五,星期六和星期日),并希望限制用户可以选择的选项:全部而不是其他选择或星期五到星期日的任何组合但不允许所有地选择。
前1。 全部都被检查了 周五,周六,周日不允许检查
Ex 2。 周五和周日都要检查 一切都不允许被检查
以下JS代码正在运行,但我想知道是否有更好/更快/更优雅的方式来编写以下JS。
Select Days:<br>
<label><input type="checkbox" name="consultantDays" value="All">All</label>
<br>
<label><input type="checkbox" name="consultantDays" value="Friday">Friday</label>
<br>
<label><input type="checkbox" name="consultantDays" value="Saturday">Saturday</label>
<br>
<label><input type="checkbox" name="consultantDays" value="Sunday">Sunday</label>
JS
<script>
/* Only allow All or (Friday, Saturday, Sunday) */
$("input[name='consultantDays'").on('change', function() {
if ($(this).val() == 'All') {
$("input[name='consultantDays'").not(this).prop('checked', false);
} else {
$("input[value='All'").not(this).prop('checked', false);
}
});
</script>
答案 0 :(得分:1)
您的代码运行正常,但您错过了属性选择器的右括号。
$("input[name='consultantDays']").not(this).prop('checked', false);
^
} else {
$("input[value='All']").not(this).prop('checked', false);
^
/* Only allow All or (Friday, Saturday, Sunday) */
$("input[name='consultantDays'").on('change', function() {
if ($(this).val() == 'All') {
$("input[name='consultantDays']").not(this).prop('checked', false);
} else {
$("input[value='All']").not(this).prop('checked', false);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Select Days:<br>
<label><input type="checkbox" name="consultantDays" value="All">All</label>
<br>
<label><input type="checkbox" name="consultantDays" value="Friday">Friday</label>
<br>
<label><input type="checkbox" name="consultantDays" value="Saturday">Saturday</label>
<br>
<label><input type="checkbox" name="consultantDays" value="Sunday">Sunday</label>