jquery JavaScript set checkbox checked value to false [关闭]

lstz6jyr  于 2023-10-17  发布在  jQuery
关注(0)|答案(1)|浏览(103)

已关闭此问题为not reproducible or was caused by typos。它目前不接受回答。

此问题是由打印错误或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这一个是解决的方式不太可能帮助未来的读者。
23天前关闭
Improve this question
我对JavaScript有问题。我正试图将选中复选框的数量限制为5。我有一个JavaScript脚本,显示我的警报,我要求显示,但仍然把复选框选中。
为此,我使用这个JavaScript脚本:

function change(_this) {
   if ($('input[type=checkbox]:checked').length > 5) {
      alert("allowed only 5");
      this.checked = false;
   }
}

我也试过

$(this).prop('checked', false);

我的复选框是经典的

<input type="checkbox" name="memberName" value="Name1" onchange="change(this)">
<input type="checkbox" name="memberName" value="Name2" onchange="change(this)">
<input type="checkbox" name="memberName" value="Name3" onchange="change(this)">
<input type="checkbox" name="memberName" value="Name4" onchange="change(this)">
<input type="checkbox" name="memberName" value="Name5" onchange="change(this)">
<input type="checkbox" name="memberName" value="Name6" onchange="change(this)">

什么原因会导致此问题?

mefy6pfw

mefy6pfw1#

您将_this传递给change函数,但随后使用this.checked,而不是_this.checked。在这种情况下,this不会引用元素。

function change(_this) {
   if ($('input[type=checkbox]:checked').length > 5) {
      alert("allowed only 5");
      _this.checked = false;
   }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="checkbox" name="memberName" value="Name1" onchange="change(this)">
<input type="checkbox" name="memberName" value="Name2" onchange="change(this)">
<input type="checkbox" name="memberName" value="Name3" onchange="change(this)">
<input type="checkbox" name="memberName" value="Name4" onchange="change(this)">
<input type="checkbox" name="memberName" value="Name5" onchange="change(this)">
<input type="checkbox" name="memberName" value="Name6" onchange="change(this)">

相关问题