答案 0 :(得分:1)
您需要在select
元素上设置multiple
属性才能选择多个。
使用JavaScript,您可以设置onChange
处理程序,以便在您选择5时禁用该元素(或阻止其他选择)。
http://jsfiddle.net/v33sszgp/1/
HTML
<select multiple data-maxoption="5">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
</select>
JS
var verified = [];
document.querySelector('select').onchange = function(e) {
if (this.querySelectorAll('option:checked').length <= this.dataset.maxoption) {
verified = Array.apply(null, this.querySelectorAll('option:checked'));
} else {
Array.apply(null, this.querySelectorAll('option')).forEach(function(e) {
e.selected = verified.indexOf(e) > -1;
});
}
}
编辑:
此外,您还看到jQuery
已标记,因此,jQuery
版本:
http://jsfiddle.net/v33sszgp/2/
var verified = $();
$('select').change(function() {
var $current = $('option:checked');
if ($current.length <= $(this).data('maxoption')) {
$verified = $current;
} else {
$(this).find('option').prop('selected', false);
$verified.prop('selected', true);
}
});
答案 1 :(得分:0)
试试这个:
<select multiple>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
</select>
$('select').click(function(e)
{
var itemSelected = 0;
$('option:selected').each(function()
{
itemSelected++;
});
if(itemSelected > 5)
{
$('option:selected').eq(5).prop("selected",false);
alert("You can only select 5 options");
}
});