我正在使用为2个jQuery元素选择的<select>
。每个元素包含相同的值,我使用循环将选定的值放在数组中,并禁用已经放在该数组中且不是所选选项的每个值。换句话说:我总是禁用醉鬼。
我试图使用最后一个循环限制所选值的数量,方法是使用一个数据属性"maxpersons“,并将其与所选值的数量进行比较。
Unfortunately,--只有当选项没有预选时才能工作。如果他们是,有人仍然可以选择更多的价值。这是不允许的。
也是,当达到最大值时,我希望在<select>
元素旁边放置一个<p>
标记,并在尚未达到最大值时自动删除它。
任何帮助都将是非常感谢的!这是JS Fiddle:http://jsfiddle.net/dq97z/28/
发布于 2012-03-27 00:41:27
您可以将您在document.ready()事件中使用的change()事件中使用的相同代码。像这样,
$(document).ready(function(){
var selected = [];
var chosen='.chzn-select';
$(chosen).parent().parent().find("option")
.each(function () {
if (chosen.selected) {
selected[chosen.value] = this;
}
})
.each(function () {
this.disabled = selected[this.value] && selected[this.value] !== chosen;
})
.each(function () {
if ($(this).parent().data('maxpersons') === $(this).parent().find('option:selected').length) {
$(this).parent().find('option:not(:selected)').prop('disabled', true);
}
});
$('.chzn-select').trigger("liszt:updated");
})
谢谢你的代码片段!
https://stackoverflow.com/questions/9273621
复制