Игнорировать проверки на нескольких полях в соответствии с другим полем
Я использую механизм проверки jquery для проверки следующей формы.
Static <input type="radio" name="mode" value="Static" data-validation-engine="validate[required] radio" data-prompt-position="topRight:-70"/>
DHCP <input type="radio" name="mode" value="dhcp" data-validation-engine="validate[required] radio" data-prompt-position="topRight:-70"/>
IP <input type="text" name="ip" id="ip" data-validation-engine="validate[required,custom[ipv4]]" data-prompt-position="topRight:-70"/>
Gateway <input type="text" name="gateway" id="gateway" data-validation-engine="validate[required,custom[ipv4]]" data-prompt-position="topRight:-70"/>
DNS <input type="text" name="dns" id="dns" data-validation-engine="validate[required,custom[ipv4]]" data-prompt-position="topRight:-70"/>
Обычно ip / gateway / dns проверяется в соответствии с правилами, но мне нужно игнорировать проверку ip / gateway / dns при выборе режима dhcp. (проверки нужны только для выбора статического режима)
В скрипте jquery я просто инициализирую validateEngine, как показано ниже.
$("#my_form").validationEngine();
Любая идея, как я могу заархивировать эту задачу.
1 ответ
Решение
Называется эта функция onchange
событие радиокнопки, если dpcp, состояние true
иначе false
function state_change(state){
if(state){
$('#ip').removeAttr("data-validation-engine");
$('#gateway').removeAttr("data-validation-engine");
$('#dns').removeAttr("data-validation-engine");
} else{
$('#ip').attr("data-validation-engine","validate[required,custom[ipv4]]");
$('#gateway').attr("data-validation-engine","validate[required,custom[ipv4]]");
$('#dns').attr("data-validation-engine","validate[required,custom[ipv4]]");
}
}