2013-11-19 3 views
0

Как проверить, не установлен ли флажок с jQuery? Есть что-то отрицательное от .click(....)?Проверьте, не установлен ли флажок с помощью jQuery?

Вот мой код:

$().ready(function() { 
     // validate UserSettings form on keyup and submit 
     $('#CheckBox').click(function() { 
      $("#TextBox").validate({ 
       rules: { 
        NextLocation: { 
         required: true 
        } 
       } 
      }); 
     }); 
    }); 

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

+0

Вы пытались просто набирать false вместо true? – adeneo

+0

Было бы лучше также показать вашу разметку HTML. – Sparky

ответ

0

Попробуйте внутри вашей, если заявление

$('#checkbox').is('checked') 
0

Вы можете использовать !, чтобы убедиться, что это становится выполняется, когда текущее состояние равно false. Итак, когда вы пишете situtaion, где код запускается, когда флажок установлен, просто добавьте ! в начало кода, как и я. И вы получите код работает. Другие функции будут такими же, как и .click() и так далее.

$('input[type=checkbox]').click(function() { // use #CheckBox if you want to 
    if(!$(this).prop('checked')) { // if NO checkbox checked 
    $('div').html("checked"); 
    } 
}) 

Это будет выглядеть, если флажок не установлен!

0

У вас есть два подхода:

A - Вы можете изменить его с помощью функции нажмитепроверки есть:

... 
('#CheckBox').click(function() { 
    if($(this).is(':checked')){ 
     ... 
    } 
}); 
... 

B - Используйте функцию изменений, который я бы предпочел

$("#CheckBox").change(function(){ 
    if($(this).checked){ 
     ... 
    } 

}); 
1

Ваш код ...

$().ready(function() { 
    // validate UserSettings form on keyup and submit 
    $('#CheckBox').click(function() { 
     $("#TextBox").validate({ 
      rules: { 
       NextLocation: { 
        required: true 
       } 
      } 
     }); 
    }); 
}); 

... имеет следующие вопросы ...

1) $().ready() не рекомендуется as per jQuery docs. Вместо этого используйте $(document).ready().

2) Вы не можете подключить .validate() к входному элементу. Он присоединяется только к элементу <form>.

3) Метод .validate() используется только для инициализации плагин, а не для тестирования ничего. Поэтому он обычно не входит в обработчик click. Вы стреляете .validate()только один раз, как только форма будет построена, как правило, в готовом обработчике DOM.

4) Если вы хотите сделать что-то required в зависимости от состояния чего-то еще, вы должны использовать метод depends в правиле required.

Моя рабочая демо ниже показывает, что текстовое поле с именем NextLocation только required когда флажок с именем check не проверено:

$(document).ready(function() { // DOM ready handler 

    $('#myform').validate({ // attach to form to initialize plugin with options 
     rules: { 
      NextLocation: { 
       required: { 
        depends: function() { 
         return !$('input[name="check"]').is(':checked'); 
        } 
       } 
      } 
     } 
    }); 

}); 

HTML:

<form id="myform"> 
    Checkbox: <input type="checkbox" name="check" /> 
    NextLocation: <input type="text" name="NextLocation" /> 
</form> 

DEMO: http://jsfiddle.net/dymmw/

Смежные вопросы