如何从检查列表框 MVC Razor 中获取选中的项目
How to get checked items from checklistbox MVC Razor
在 div 中,我有一些 CheckBoxList
在 MVC Razor
中使用 CheckBoxListFor
。我希望当我按下一个按钮来选中所有复选框的所有值时。如何做到这一点?
<div class="col-md-4">
<label for="" class="control-label">
Branch</label><br />
@Html.CheckBoxListFor(m => m.SearchBranchSeq,MultiSelectList)Model.SearchBranches, new {@id="SearchBranches", @style = "overflow: auto; height: 100px; width: 250px; border: 1px solid #cccccc;" })
</div>
我试过如下,
var SearchBranchSeq = [];
$('input:checkbox').click(function () {
if ($(this).is(':checked')) {
SearchBranchSeq.push($(this).val());
}
else {
var x = SearchBranchSeq.valueOf($(this).val());
SearchBranchSeq.splice(x, 1);
}
});
它正在工作,但是当我取消选中 CheckBoxList
中的复选框时,我无法删除 SearchBranchSeq
中的值。谁能帮我找到解决办法?
您需要在阵列上使用 indexOf()
instead of valueOf()
。如 link 中所述,indexOf()
在 Internet Explorer 9+
和其他现代浏览器中定义。
// IE Old
if (!Array.prototype.indexOf) {
Array.prototype.indexOf = function(obj, start) {
for (var i = (start || 0), j = this.length; i < j; i++) {
if (this[i] === obj) { return i; }
}
return -1;
}
}
// End IE Old - not needed if old IE is not supported
var x = SearchBranchSeq.indexOf($(this).val());
SearchBranchSeq.splice(x, 1);
在 div 中,我有一些 CheckBoxList
在 MVC Razor
中使用 CheckBoxListFor
。我希望当我按下一个按钮来选中所有复选框的所有值时。如何做到这一点?
<div class="col-md-4">
<label for="" class="control-label">
Branch</label><br />
@Html.CheckBoxListFor(m => m.SearchBranchSeq,MultiSelectList)Model.SearchBranches, new {@id="SearchBranches", @style = "overflow: auto; height: 100px; width: 250px; border: 1px solid #cccccc;" })
</div>
我试过如下,
var SearchBranchSeq = [];
$('input:checkbox').click(function () {
if ($(this).is(':checked')) {
SearchBranchSeq.push($(this).val());
}
else {
var x = SearchBranchSeq.valueOf($(this).val());
SearchBranchSeq.splice(x, 1);
}
});
它正在工作,但是当我取消选中 CheckBoxList
中的复选框时,我无法删除 SearchBranchSeq
中的值。谁能帮我找到解决办法?
您需要在阵列上使用 indexOf()
instead of valueOf()
。如 link 中所述,indexOf()
在 Internet Explorer 9+
和其他现代浏览器中定义。
// IE Old
if (!Array.prototype.indexOf) {
Array.prototype.indexOf = function(obj, start) {
for (var i = (start || 0), j = this.length; i < j; i++) {
if (this[i] === obj) { return i; }
}
return -1;
}
}
// End IE Old - not needed if old IE is not supported
var x = SearchBranchSeq.indexOf($(this).val());
SearchBranchSeq.splice(x, 1);