我正在尝试限制多选对话框(JQuery Mobile)上的可选选项数量,但实际上无法接缝以使其按预期工作。
我做了一个JSFiddle:
正如您所看到的,即使限制为4,也可以选择5。此外,如果您单击另一个选项之前的选项,它将同时删除这两个选项。
已经尝试了几种不同的方法来做到这一点,无法解决问题。
<select id="test1" data-rel="popup" data-position-to="window" data-native-menu="false" data-mini="true" multiple="multiple">
<option>Sportbooks</option>
<option value="1">Test1</option>
<option value="2">Test2</option>
<option value="3">Test3</option>
<option value="4">Test4</option>
<option value="5">Test5</option>
<option value="6">Test6</option>
<option value="7">Test7</option>
<option value="8">Test8</option>
<option value="9">Test9</option>
<option value="10">Test10</option>
<option value="11">Test11</option>
<option value="12">Test12</option>
<option value="13">Test13</option>
<option value="14">Test13</option>
<option value="15">Test13</option>
<option value="16">Test13</option>
<option value="17">Test13</option>
<option value="18">Test13</option>
<option value="19">Test13</option>
<option value="20">Test13</option>
</select>
$(document).ready(function () {
$("#test1").change(function () {
$(this).find("option:selected")
if ($(this).find("option:selected").length > 4) {
$(this).find("option").removeAttr("selected");
$(this).val(arr);
} else {
arr = new Array();
$(this).find("option:selected").each(function (index, item) {
arr.push($(item).val());
});
}
});
});
希望有人可以帮助我们,谢谢。
答案 0 :(得分:0)
这个限制是因为你在一个以索引0开头的数组上使用.length。所以为了限制为4,你想使用&gt; = 4,这将修复那个部分。我正在考虑修复另一个问题,即当你在选中项目上方选择一个项目时,它会删除多个项目。