Search code examples
jqueryjquery-validation-engine

Ignore validations on few fields according to another field


I use jquery validation engine to validate following form.

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"/>

Normally ip/gateway/dns validate as per the rules, but I need to ignore the ip/gateway/dns validation when dhcp mode selection. (validations needs only for static mode selection)

In jquery script I just initialize the validateEngine as below.

$("#my_form").validationEngine();

Any idea how I can archive this task.


Solution

  • called this function onchange event of radio button, if dpcp, state is true otherwise 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]]");
        }
    }