2012-05-29 4 views
2

У меня есть форма со следующими двумя HTML элементами:JQuery перепроверить текстовое поле, когда флажок изменения

<input type="text" name="vrm" id="vrm" size="15" maxlength="15" value="" /> 
<input type="checkbox" id="foreign_registration" name="foreign_registration" value="yes" /> 

и следующее правило проверки JQuery (с помощью плагина проверки отсюда: http://bassistance.de/jquery-plugins/jquery-plugin-validation/):

vrm: { 
     remote: { 
      url: "/json/vrm-validate.php", 
      data: { 
       foreign_registration: function() { 
       return $('#foreign_registration').is(':checked'); 
       } 
      } 
      } 
     } 

Удаленный сценарий основывается на обоих полях, поскольку проверка, выполняемая в текстовом поле, зависит от того, отмечена ли регистрация иностранного языка или нет.

Проблема в том, что если я введу что-то в текстовое поле и затем изменим этот флажок, правило проверки не будет повторно запущено. Я предполагаю, что это связано с тем, что правило проверки привязано только к текстовому полю, поэтому оно будет запускаться только тогда, когда это будет изменено.

Есть ли способ сказать, что эти два элемента взаимосвязаны, поэтому, если любой из них изменит, предположим, что правила текстового поля должны быть снова проверены?? Я не хочу прикреплять к этому флажку какие-либо правила проверки, потому что его не нужно проверять на стороне клиента, а правила проверки, выполняемые удаленным сценарием, слишком сложны для реализации в jQuery.

ответ

0

можно вызвать функцию Validate на изменение флажком

$(':checkbox').change(function(){ 
    $('form').validate(); 
}); 
+0

Не будет ли это повторной проверки всей формы? Я действительно хочу проверить правильность текстового поля, тем более что форма, вероятно, будет расти со временем. – pwaring

+0

да, это будет сделано после быстрого поиска, я нашел это http://stackoverflow.com/q/2738925/801241, это может помочь в том, что вы хотите сделать. – Qpirate

3

альтернативный ответ, который я был послан по электронной почте является:

isOI мой флажок и пункт мое текстовое поле, что Мне нужно обновить при щелчке по галочке.

$("#isOI").change(function() { 
    var item = $("#Item"); 
    item.data("previousValue", null).valid(); 
}); 

Видимо существующий ответ не работает для этого человека.

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