2012-02-08 4 views
2

Я хочу, чтобы поле стало обязательным только в том случае, если выбран конкретный параметр или выбран конкретный переключатель или когда определенная строка вводится в поле ввода текста (все необходимые (зависимость-выражение), я могу предположить, что зависимость заключается в том, что вход проверен/снят или заполнен/незаполнен в случае текстовых полей)Проверка подлинности JQuery: требуется (зависимость-выражение)

Вот пример того, что мне нужно, на основе радиораздела :

Семейное положение (требуемое поле):

<input name="status" id='status'type="radio" value="couple" checked="checked" /> 
<input name="status" id='status'type="radio" value="single male" /> 
<input name="status" id='status'type="radio" value="single female" /> 

партнеров Имя (зависимое поле - требуется только тогда, когда 'Пара' выбрана из выше)

<input name="partner" type="text" id="partner"> 

Пример 2: Обязательное поле = Место

<select name="venue" id="venue"> 
<option value="">Please select venue</option> 
<option>London EC1</option> 
<option>London E9</option> 
<option>Birmingham</option> 

т.д. зависимости поля = пользователь (только требуется для одного из указанных выше выборов, скажем, «Бирмингем»)

<input name="user" type="text" id="user"> 

Как я адаптировать пример показан athttp: //docs.jquery.com/Plu gins/Validation/Methods/required # dependency-expression для вышеуказанных ситуаций?

$("#myform").validate({ 
    rules: { 
    details: { 
     required: "#other:checked" 
    } 
    }, debug:true 
}); 
$("#other").click(function() { 
    $("#details").valid(); 
}); 

Я попытался:

user: { 
     required: "#venue:('birmingham')" 
    } 

и

partner: { 
     required: "#status:('couple')" 
    } 

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

ответ

4

для во-первых, ваши радиовходы должны иметь разные идентификаторы:

<input name="status" id='statusCouple' type="radio" value="couple" checked="checked" /> 
<input name="status" id='statusSingleMale' type="radio" value="single male" /> 
<input name="status" id='statusSignleFemale' type="radio" value="single female" /> 

Тогда ваше правило может выглядеть следующим образом:

partner: { 
    required: "#statusCouple:checked" 
} 

Для второго, просто сделать ваше правило так:

user: { 
    required: function(element) { return $("#venue").val() == 'Birmingham'; } 
}  

Если сделать трюк.

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