проверка флажка с использованием jquery - PullRequest
0 голосов
/ 27 марта 2012

Я некоторое время ищу это и не могу найти то, что мне подходит.

У меня есть этот флажок:

 <%= Html.CheckBox("cbCodigo") %> <label class="inline" for="Codigo">Codigo</label>
 <%= Html.CheckBox("cbNombreCliente") %> <label class="inline" for="NombreCliente">Nombre del cliente</label>
 <%= Html.CheckBox("cbCiudad") %> <label class="inline" for="Ciudad">Ciudad</label>

Я хочу проверить, проверяется ли только один из них при изменении текстового поля, что-то вроде этого, и использовать .validate из jQuery, я не знаю, как лучше всего это проверить.

tbCodCliente - это текстовое поле, которое я использую в качестве параметра поиска, а флажок - это параметр или значение для функции автозаполнения текстового поля

$('#tbCodCliente').change(function() {
     if ($('#cbCodigo').attr('checked', false) &&
          $('#cbNombreCliente').attr('checked', false) &&
          $('#tbCheckbox').attr('checked', false)) {

          // function for validate method          
     }
});

Я пытаюсь проверить это, но я не знаю, лучший ли это способ.

EDIT: Я хочу что-то вроде этого, но все еще могу найти, как сделать это работает

('#tbCodCliente').change(function() {
    if( $("input:checked").length == 0 ) {
        $("#request-form").validate({
             rules: {
                 checkbox: { 
                     required: 'input[type="checkbox"]:checked',
                     minlength: 1
                 }   
             },
             messages: {
                 checkbox: {"Please check at least one."}
             }
        })        

    }
});

Ответы [ 2 ]

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

Если это единственные чекбоксы, доступные на странице, то вы можете попробовать выполнить следующее утверждение jQuery:

if( $("input:checked").length == 1 )

Edit:

Чтобы быть более точным, вы можете изменить код проверки следующим образом:

$('#tbCodCliente').change(function() {
   if( $("input:checked").length == 1 ) {
       //Do stuff here
   }
});
1 голос
/ 27 марта 2012

Это снимет другие флажки после того, как установлен один флажок.

$('input:checkbox').change(function () {
        if (this.checked) {
            $('input:checkbox:not(#'+this.id+')').attr('checked', false);
        }
}); 

Демонстрация: http://jsfiddle.net/5btfe/

А для проверки, выбранной одним флажком, вы можете сослаться на ответ epuri, который является совершенно правильным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...