2015-08-10 4 views
0

Существует сценарий, в котором у нас есть выпадающий список для выбора значений, а также параметр other для указания значения в текстовом поле ввода.Validate onchange поля ввода jQuery Validate plugin

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

select является:

<select class="form-control" name="amount_sch" id="amount_sch"> 
    <option value="" selected>Please Select</option> 
    <option value="1000">1000</option> 
    <option value="2000">2000</option> 
    <option value="othr_amt">Other, Please Specify</option> 
</select> 

input является:

<input type="text" id="amount_sch_other" name="amount_sch_other" 
class="form-control no-extras" placeholder="Enter Amount" 
style="display:none;"/> 

JQuery, чтобы показать/скрыть:

$("#amount_sch").change(function() { 
    if ($(this).val() == "othr_amt") { 
    $("#amount_sch_other").show(); 
    } 
    else{ 
    $("#amount_sch_other").hide(); 
    } 
}); 

rules вариант в .validate() ...

amount_sch : { 
    required : true, 
} 

При этом проверяется только select, но как я могу проверить text поле, когда оно видно?

+0

Вы пытались решить это самостоятельно? Если да, то где это пошло не так? – Sparky

ответ

1

По умолчанию плагин jQuery Validate будет динамически игнорировать проверку для любого скрытого поля. Поэтому вам просто нужно объявить правила проверки для текстового поля и позволить плагину автоматически выполнять свою работу.

rules: { 
    amount_sch: { 
     required: true, 
    }, 
    amount_sch_other: { 
     required: true, 
    } 
} 

Всякий раз, когда текстовое поле отображается, оно будет проверено; и когда он будет скрыт, он не будет проверен.

DEMO: http://jsfiddle.net/Lcdexmwc/

+0

Yup .. это сработало :) /// Thnkssssss – Gags

0

JQuery плагин проверки по умолчанию игнорировать все скрытые элементы.

Для вашего случая, даже если вы задали свое поле, как указано в Sparky. Или просто добавьте ignore: [], чтобы нажать плагин, чтобы проверить все скрытые элементы в форме.

$form.validate({ 
    ignore: [], 
... 
Смежные вопросы