2016-02-02 3 views
0

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

Вот разметка:

<form id="text_opt"> 
<input id="promos" name="promos" type="checkbox" /><label for="promos">Special Promotions</label> 
<input id="products" name="products" type="checkbox" /><label for="products">New Products &amp; Services</label> 
<div class="mobile-wrap"> 
    <input id="text_phone" name="text_phone" type="text" placeholder="Mobile Phone Number" required/> 
</div> 
<p class="text-msg">*Standard Messaging fees and rates apply</p> 

Вот функция:

function isTextChecked() { 
    return jQuery('input#promos').is(':checked') || jQuery('input#products').is(':checked') 
} 

Вот JQuery Validation вызов:

jQuery('form#text_opt').validate({ 
    rules: { 
     text_number: { 
      required: isTextChecked() 
     } 
    } 
}); 

Если я называю isTextChecked() в консоли возвращает true/false, как я ожидаю, но по какой-то причине поле не требуется ни на что.

ответ

0

Вы установили требуемое правило для поля text_number, но в вашей форме имя поля - text_phone. Он также имеет необходимый атрибут, который также должен быть удален.

jQuery('form#text_opt').validate({ 
    rules: { 
     text_phone: { 
      required: isTextChecked() 
     } 
    } 
}); 
+0

AHA !! Поработав некоторое время, я, по-видимому, теряю основные навыки чтения и сравнения. Лес для деревьев и все такое. Спасибо! –

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