我想设置它。因此,当它超过某个值时,会发出警报以通知用户勾选了太多的框。警报显示成功但有问题的复选框保持勾选状态。我之前使用过这个功能,但这次没用。我不知道为什么。提前感谢您的任何帮助。
function cannotDoThreeATTandAwareness() {
var i = 0;
$('.ATT, #aware').each(function() {
if ($(this).is(':not(:visible)')) {
i += 3
}
});
$('.ATT').each(function() {
if ($(this).is(':checked')) {
i += 3
}
});
$('.awareness').each(function() {
if ($(this).is(':checked')) {
i += 1
}
});
if (i > 9) {
alert('You cannot select this paper as you have already selected your Core 2 paper');
};
return i == 10;
}
onclick =" if(cannotDoThreeATTandAwareness()){this.checked=false};"
答案 0 :(得分:0)
只需return
您在Click事件中想要的结果。
function cannotDoThreeATTandAwareness() {
var i = 0;
// used 'true' to always make it fail, for the sake of example
if (true || i > 9) {
alert('You cannot select this paper as you have already selected your Core 2 paper');
};
return i > 9;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label>
<input type="checkbox" onclick="return cannotDoThreeATTandAwareness()">
Click me
</label>
&#13;
另一种选择是为函数添加一个参数,让我们说e
,并且你想要阻止更改,你可以使用{{1} }。为了实现这一点,您需要将事件传递给函数,这是一个片段:
e.preventDefault()
function cannotDoThreeATTandAwareness(e) {
...
if (true || i > 9) {
e.preventDefault()
...
};
}