javascript - 使用 Shift 键时如何限制选择元素中的选定选项

标签 javascript jquery range shift multiple-select

HTML

<select id="my-select" multiple="multiple" size="8" style="width:200px">
    <option value="0">0</option>
    <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>
    <option value="8">8</option>
    <option value="9">9</option>
    <option value="10">10</option>
    <option value="11">11</option>
    <option value="12">12</option>
    <option value="13">13</option>
    <option value="14">14</option>
    <option value="15">15</option>
</select>

JQUERY

$('#my-select option').on('click',function(){
    var count = $('#my-select').find('option:selected').length;
    $('#dg').html(count);
        if(count>10){
            $(this).attr('selected',false); 
    alert('limit 10');
         }
 });

http://jsfiddle.net/LxNMm/

当您单击选项时,计算所选选项的数量并将其限制为 10,但是如果您按住 Shift 键单击选项并选择一个范围,则选择可能会大于 10。如何检测按 Shift 键选择范围时选择的选项

最佳答案

您可以尝试通过以下方式更新值:

 $('#my-select').on('change', function () {
    var count = $(this).find('option:selected').length;
    $('#dg').html(count);
    if (count > 10) {
       $('option:gt(9)', this).attr('selected', false);
       count = $(this).find('option:selected').length;
       $('#dg').html(count);
       alert('error');
    }
});

Your updated demo fiddle

关于javascript - 使用 Shift 键时如何限制选择元素中的选定选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20761373/

相关文章:

vba - 选择单元格范围时出错

excel - 如何在 Excel 中的一组值中找到*最*平均值/最接近平均值的值?

javascript - 使用 javascript 更改 html 元素的 css - 'Uncaught TypeError: Cannot read property ' className' of null'

javascript - 视频加载时无法关闭 YouTube 视频

javascript - 删除 CSS 选择器的效果

javascript - 使用 JavaScript 和 Canvas 制作动画

javascript - 如何在 iframe 完全加载之前显示加载图标?

javascript - jQuery 插件内的单击事件在另一个元素上不起作用

javascript - 使用 Javascript 合并 2 组对象 + 数组

MYSQL - 限制在一个范围内