Skip to content

Commit 7ab5b44

Browse files
committed
added feature to use checkbox to force a field to be validated
1 parent ce973cd commit 7ab5b44

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

jquery.formvalidator.js

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -792,7 +792,28 @@ jQueryFormUtils.validateInput = function(el, language, config, form) {
792792

793793
var value = el.val();
794794
var optional = el.attr("data-validation-optional");
795-
if ((value === null || value.length == 0) && optional === 'true') {
795+
796+
// test if a checkbox forces this element to be validated
797+
var validate_if_checked = 0; // set initial value false
798+
// get value of this element's attribute "... if-checked"
799+
var validate_if_checked_el_name = el.attr("data-validation-if-checked");
800+
// get the form closest to this element
801+
var thisform = el.closest("form");
802+
// make sure we can proceed
803+
if (validate_if_checked_el_name != null && thisform != null) {
804+
// select the checkbox type element in this form
805+
var validate_if_checked_el_obj = thisform.find('input[name="' + validate_if_checked_el_name + '"]');
806+
// test if it's property "checked" is checked
807+
if ( validate_if_checked_el_obj.prop('checked') )
808+
{ // set value for validation checkpoint
809+
validate_if_checked = 1;
810+
}
811+
} // end if depend_checked_el_name not null
812+
813+
814+
// validation checkpoint (added extra criteria depend_check)
815+
// if empty AND optional AND does not depend on a checkbox being checked, it is ok, return true
816+
if ((value === null || value.length == 0) && optional === 'true' && !validate_if_checked) {
796817
return true;
797818
}
798819

0 commit comments

Comments
 (0)