Игнорировать проверки на нескольких полях в соответствии с другим полем

Я использую механизм проверки 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]]");
    }
}
Другие вопросы по тегам