防止多选来检查最后一个值

时间:2015-08-04 12:52:26

标签: jquery

我想实现多重选择元素,阻止用户检查列表中的所有值(所有-1都可以接受)。我写了一些jquery代码,但我不知道它有什么问题。有帮助吗? HTML:

<select class='custom-header' id='custom-header' multiple='multiple' name="my-select">
     <option class="test" value='elem_1'>elem 1</option>
     <option  class="test" value='elem_2'>elem 2</option>
     <option class="test" value='elem_3'>elem 3</option>
     <option class="test" value='elem_4'>elem 4</option>
     <option value='elem_100'>elem 100</option>
</select>

JS:

var userChoice = $(".test");
$.each(userChoice, function(index,value){
   if(index = userChoice.length -1){
      alert("The last was clicked.");
   }
});

3 个答案:

答案 0 :(得分:2)

使用此代码当选择所有选项时,您将收到提醒

   $('#custom-header').change(function(){
if($("#custom-header > option").length==$("#custom-header    :selected").length){
  alert("The last was clicked.");
}
});

答案 1 :(得分:2)

试试这个,它会阻止您选择所有选项:

TestLibrary

Updated fiddle

或者如果你喜欢短三元:

$("#custom-header").change(function () {
    if ($(this).val().length > 4) {
        $(this).val("");
    }
});

答案 2 :(得分:0)

你可以使用最后一个孩子选择器:

 var userChoice = $(".test:last-child");
 userChoice.on('click', function() {
         // stuff;
 });

最好使用onchange事件

  $('#custom-header').on('change', function() {
       if($(this).selectedIndex == $('#custom-header .test').length)
  });