function gf_apply_rules(formId, fields, isInit){ for(var i=0; i < fields.length; i++) gf_apply_field_rule(formId, fields[i], isInit); } function gf_apply_field_rule(formId, fieldId, isInit){ var conditionalLogic = window["gf_form_conditional_logic"][formId]["logic"][fieldId]; var action = gf_get_field_action(formId, conditionalLogic["section"]); //If section is hidden, always hide field. If section is displayed, see if field is supposed to be displayed or hidden if(action != "hide") action = gf_get_field_action(formId, conditionalLogic["field"]); gf_do_field_action(formId, action, fieldId, isInit); } function gf_get_field_action(formId, conditionalLogic){ if(!conditionalLogic) return "show"; var matches = 0; for(var i = 0; i < conditionalLogic["rules"].length; i++){ var rule = conditionalLogic["rules"][i]; if( (rule["operator"] == "is" && gf_is_value_selected(formId, rule["fieldId"], rule["value"])) || (rule["operator"] == "isnot" && !gf_is_value_selected(formId, rule["fieldId"], rule["value"])) ) matches++; } var action; if( (conditionalLogic["logicType"] == "all" && matches == conditionalLogic["rules"].length) || (conditionalLogic["logicType"] == "any" && matches > 0) ) action = conditionalLogic["actionType"]; else action = conditionalLogic["actionType"] == "show" ? "hide" : "show"; return action; } function gf_is_value_selected(formId, fieldId, value){ var inputs = jQuery("#input_" + formId + "_" + fieldId + " input"); if(inputs.length > 0){ for(var i=0; i< inputs.length; i++){ if(jQuery(inputs[i]).val() == value && jQuery(inputs[i]).is(":checked")) return true; } } else{ if(jQuery("#input_" + formId + "_" + fieldId).val() == value) return true; } return false; } function gf_do_field_action(formId, action, fieldId, isInit){ var conditional_logic = window["gf_form_conditional_logic"][formId]; var dependent_fields = conditional_logic["dependents"][fieldId]; for(var i=0; i < dependent_fields.length; i++){ var targetId = fieldId == 0 ? "#gform_submit_button_" + formId : "#field_" + formId + "_" + dependent_fields[i]; if(action == "show"){ if(conditional_logic["animation"] && !isInit) jQuery(targetId).slideDown(); else jQuery(targetId).show(); } else{ if(conditional_logic["animation"] && !isInit) jQuery(targetId).slideUp(); else jQuery(targetId).hide(); } } }