我想创建一个小功能,阻止用户从多选列表中选择3个以上的项目。 我在网上找到了一些有用的东西,这使我能够在用户选择3个以上的项目时发出警报。但是,我找不到删除最后一个选定项目的方法。
到目前为止,这是我的jQuery:
$('.metiersMission').change(function(event) {
if ($(this).val().length > 3) {
alert('Vous ne pouvez choisir que 3 métiers');
$(this).select2('val', '');
}
}});
使用此代码,如果用户选择的项目超过3个,则代码只需删除用户选择的所有内容,这显然不是我想要的。我在任何地方都找不到任何关于此的内容,任何人都有想法?
提前谢谢
答案 0 :(得分:2)
您可以收听change
事件并计算所选选项。如果所选选项为3,则禁用所有其他选项:
$(document).on('change', 'select', function() {
var that = $(this);
var val = that.val();
if (val.length > 2) {
// Find every unselected option and disable them
that.find('option').not(':selected').attr('disabled','disabled');
} else {
// Enable all options
that.find('option').removeAttr('disabled');
}
});
select { width:250px; height:150px }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<select multiple>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
<option value="citroen">Citroen</option>
<option value="peugeot">Peugeot</option>
</select>
答案 1 :(得分:0)
您可以听取每个孩子的变化,如果选择了3个以上的孩子,则拒绝选择孩子:
$('.metiersMission').children('option').each(
$(this).change(function(event) {
if ($(this).parent('select').val().length > 3) {
alert('Vous ne pouvez choisir que 3 métiers');
$(this).removeAttr('selected');
}
}});
)};