Отключите последнюю опцию, которая будет проверена в Jquery Multiselect - PullRequest
2 голосов
/ 21 марта 2012

Я использую в своем проекте jquery multiselect, когда пользователь нажимает на checkall, тогда как я могу остановить эту функцию, чтобы проверить последний параметр в jquery multiselect?

например, если у меня есть 4 опции в моем множественном выборе jquery, и если пользователь нажимает на галочку, все, что я хочу, чтобы была включена опция начальных трех, но последняя опция не отмечена. любая помощь будет высоко ценится

Ответы [ 2 ]

2 голосов
/ 21 марта 2012

Здесь вы найдете обновленное решение для плагина, а также обычный множественный флажок с демонстрацией!

Решение для множественного выбора Специальное условие флажка для снятия последнего флажка при проверке

РаботаMultiSelect jsfiddle для конкретного случая, касающегося модуля множественного выбора @ Gautam: http://jsfiddle.net/fG6PT/82/

HTML:

<select multiple="multiple" class='multi'>
<option value="foo">foo</option>
<option value="bar">bar</option>
<option value="baz">baz</option>
<option value="toy">toy</option>
</select>

JQuery

$('.multi').multiselect({

    // Uncheck the last checkbox when chaeckall happens.
    checkAll: function () {

       if ($(this).is(":last") == true){

          var arr = $(this).val().toString().split(',');
           // Work on the array length alert('===>' + arr.length);
           var l = arr.length;
           for(i=(l-1);i<l;i++){
               // so whatever the lenght is aim for the last element
                 $('input:checkbox[value="' + arr[i] + '"]').attr('checked', false);
           }
        }
    }

});

Ниже приведено решение для обычного Chckbox

Рабочий пример здесь: http://jsfiddle.net/Ev7FX/5/

http://jsfiddle.net/Ev7FX/4/

HTML

<input type="checkbox" name="check[]" value="1" />
<input type="checkbox" name="check[]" value="2" />
<input type="checkbox" name="check[]" value="3" />
<input type="checkbox" name="check[]" value="4" />
<a href="#" title="" id="check">check all</a> <a href="#" title="" id="uncheck">uncheck all</a>​

Код JQuery

var all_checkboxes = jQuery(':checkbox');

jQuery('#check').on('click', function(event){
    event.preventDefault();
       all_checkboxes.not(':last').prop('checked', true);
});

jQuery('#uncheck').on('click', function(event){
    event.preventDefault();
    all_checkboxes.prop('checked', false);
});​

Это поможет, ура!

0 голосов
/ 21 марта 2012

Захватите флажки, переберите их, выполните (или в вашем случае не выполняйте) уникальное действие для последнего найденного элемента.

var ourCheckBoxes = $(":checkBoxes");
$.each(ourCheckBoxes, function(index,value){
  if(index = ourCheckBoxes.length -1){
    //this is our last element broski
  }
});
...