1//$.getScript("includes/customInputControls/jquery.formatTextBox.js").fail(function (jqxhr, settings, exception) { alert("error loading jquery.formatTextBox.js"); }); 2//function invalidClientFunction(sender /*the object that failed to validate*/, invalidReason /*"isRequired","isEmail","isNumber","isInteger","isNonNegative","isEnglishLettersAndNumbersOnly"*/) {} 3 4function displayServerValidationErrorMessage(senderId, senderType, errorMessage) { 5 var sender = $("#" + senderId); 6 7 var errorMessageContainerSelector = sender.data("validation-captcha-error-message-container-selector"); 8 if (errorMessageContainerSelector == null || errorMessageContainerSelector == undefined || errorMessageContainerSelector == "") 9 errorMessageContainerSelector = sender.data("validation-general-error-message-container-selector"); 10 11 if (errorMessageContainerSelector != null && errorMessageContainerSelector != undefined && errorMessageContainerSelector != "") 12 $(errorMessageContainerSelector).html(errorMessage); 13 else 14 alert(errorMessage); 15} 16 17$(document).ready(function () { 18 var EMAIL_REGEX = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$|^$/; // empty, email 19 var NUMERIC_REGEX = /^(\d|-)?(\d)*\.?\d*$/; // empty, 123, -123, 123.123, -123.123 20 var INTEGER_REGEX = /^\d*$|^-\d+$/; // empty, 123, -123 21 var NON_NEGATIVE_REGEX = /^[+]?([.]\d+|\d+([.]\d+)?)$|^$/; // empty, 123, 123.123 22 var ENGLISH_LETTERS_AND_NUMBERS_ONLY_REGEX = /^[a-zA-Z0-9]*$/; // empty, 123abc 23 var URL_REGEX = /^(|https?:\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?)$/; // empty, url 24 25 //add watermark to textboxes 26 $("[data-watermark]") 27 .each(function () { if ($(this).val() == "") { $(this).val($(this).attr("data-watermark")); } }) 28 .focus(function () { 29 if (this.value.trim() == this.getAttribute("data-watermark")) 30 this.value = ""; 31 }).blur(function () { 32 if (this.value.trim() == "") 33 this.value = this.getAttribute("data-watermark"); 34 }); 35 36 //add formatTextBox to validation enabled textboxes 37 $("[data-validation-enabled=true]").each(function () { 38 var $this = $(this); 39 if ($this.is("input[type=text]")) { 40 var enableKeyCheck = $this.data("validation-enable-key-check"); 41 if (enableKeyCheck) { 42 var isEmail = $this.data("validation-is-email"); 43 var isNumber = $this.data("validation-is-number"); 44 var isInteger = $this.data("validation-is-integer"); 45 var isNonNegative = $this.data("validation-is-non-negative"); 46 var isEnglishLettersAndNumbersOnly = $this.data("validation-is-english-letters-and-numbers-only"); 47 var isUrl = $this.data("validation-is-url"); 48 //var isHebrewLettersNumbersAndSpacesOnly = $this.data("validation-is-hebrew-letters-numbers-and-spaces-only"); 49 50 var watermark = $this.data("watermark"); 51 52 if (isEmail) 53 $this.formatTextBox({ formatType: 'email', alertOnFormatError: false }); 54 else if (isNumber) 55 $this.formatTextBox({ formatType: 'regex', regexPattern: /^(\d|-)?(\d)*\.?\d*$/, regexPatternKeypress: '[0-9\-\.]' }); 56 else if (isInteger) 57 $this.formatTextBox({ formatType: 'regex', regexPattern: /^\d*$|^-\d+$/, regexPatternKeypress: '[0-9]' }); 58 else if (isNonNegative) 59 $this.formatTextBox({ formatType: 'regex', regexPattern: /^[+]?([.]\d+|\d+([.]\d+)?)$|^$/, regexPatternKeypress: '[0-9\.]' }); 60 else if (isEnglishLettersAndNumbersOnly) 61 $this.formatTextBox({ formatType: 'regex', regexPattern: /^[a-zA-Z0-9]*$/, regexPatternKeypress: '[a-zA-Z0-9]' }); 62 else if (isUrl) 63 $this.formatTextBox({ formatType: 'url', alertOnFormatError: false }); 64 //else if (isHebrewLettersNumbersAndSpacesOnly) 65 // $this.formatTextBox({ formatType: 'regex', regexPattern: /^([à-ú]|[0-9]| )*$/, regexPatternKeypress: '([à-ú]|[0-9]| )' }); 66 } 67 } 68 });
69 70 $("[data-validation-configuration-validation-group]").each(function () { //run on all validation configuration controls 71 var validatingControlsSelector = $(this).data("validation-validating-controls-selector"); //get validating controls selector 72 var validationConfigurationControlId = $(this).attr("id"); 73 74 $(validatingControlsSelector) //get validating controls 75 .data("validation-configuration-control-id", validationConfigurationControlId) //save the id of the configuration control for later use in the click event of the validation trigger 76 .click(function () { 77 var validationConfigurationControlId = $(this).data("validation-configuration-control-id"); //get the validation configuration control id 78 var validationConfigurationControl = $("#" + validationConfigurationControlId); //get the validation configuration control 79 var validateGroup = validationConfigurationControl.data("validation-configuration-validation-group"); //get the validation group 80 81 var controlsToValidate = null; 82 83 if (validateGroup != null && validateGroup != undefined && validateGroup != "") //if has group then get all the controls that are in the same group 84 controlsToValidate = $("[data-validation-enabled=true][data-validation-group=" + validateGroup + "]"); 85 else //else get all controls that dont have a group 86 controlsToValidate = $("[data-validation-enabled=true]").not("[data-validation-group]"); 87 88 if (controlsToValidate.length == 0) 89 return true; 90 91 //$(controlsToValidate).change(function () { 92 // validateControls(controlsToValidate, validationConfigurationControl); 93 //}); 94 95 return validateControls(controlsToValidate, validationConfigurationControl); 96 }); //end of "$(validatingControlsSelector).click" 97 }); //end of "$("[data-validation-configuration-validation-group]").each" 98 99 function validateControls(controlsToValidate, validationConfigurationControl) { 100 var isValidForm = true; 101 102 //clear summery error messages 103 var errorMessageSummeryContainerSelector = validationConfigurationControl.data("validation-error-message-summery-container-selector"); 104 if (errorMessageSummeryContainerSelector != null && errorMessageSummeryContainerSelector != undefined && errorMessageSummeryContainerSelector != "") 105 $(errorMessageSummeryContainerSelector).html(""); 106 107 var summeryErrorMessageStr = ""; 108 var popupErrorMessageStr = ""; 109 110 controlsToValidate.removeAttr("aria-invalid"); 111 112 controlsToValidate.each(function () { //run on all controls in the group 113 var $this = $(this); 114 var controlType = ($this.is("input") ? $this.attr("type") : $this.prop("tagName")).toLowerCase(); 115 116 //get the control value by its type 117 var controlValue = ""; 118 if (controlType == "text" || controlType == "password" || controlType == "select" || controlType == "textarea") 119 controlValue = $this.val(); 120 else if (controlType == "checkbox") 121 controlValue = $this.is(':checked'); 122 123 //get validation types 124 var isRequired = $this.data("validation-is-required"); 125 var isEmail = $this.data("validation-is-email"); 126 var isNumber = $this.data("validation-is-number"); 127 var isInteger = $this.data("validation-is-integer"); 128 var isNonNegative = $this.data("validation-is-non-negative"); 129 var isEnglishLettersAndNumbersOnly = $this.data("validation-is-english-letters-and-numbers-only"); 130 var isUrl = $this.data("validation-is-url"); 131 132 var watermark = $this.data("watermark"); //get watermark 133 var isRequiredDefaultValue = $this.data("validation-is-required-default-value"); 134 if (isRequiredDefaultValue == null || isRequiredDefaultValue == undefined) 135 isRequiredDefaultValue = ""; 136 137 //clear control error messages 138 clearControlErrorMessages($this); 139 140 //check if control is valid 141 var isValid = true; 142 var invalidReason = ""; 143 //if (isRequired && ((controlValue == isRequiredDefaultValue && watermark == undefined) || (controlValue ==
143watermark))) { //isRequired 144 if (isRequired && ( //isRequired 145 (controlValue == isRequiredDefaultValue) || 146 (controlValue == watermark) || 147 (controlType == "checkbox" && controlValue == false) /*checkbox isRequired*/)) { 148 invalidReason = "isRequired"; 149 isValid = false; 150 } 151 if (isValid && isEmail && EMAIL_REGEX.test(controlValue) == false && (watermark == undefined || controlValue != watermark)) { //isEmail 152 invalidReason = "isEmail"; 153 isValid = false; 154 } 155 if (isValid && isNumber && NUMERIC_REGEX.test(controlValue) == false && (watermark == undefined || controlValue != watermark)) { //isNumber 156 invalidReason = "isNumber"; 157 isValid = false; 158 } 159 if (isValid && isInteger && INTEGER_REGEX.test(controlValue) == false && (watermark == undefined || controlValue != watermark)) { //isInteger 160 invalidReason = "isInteger"; 161 isValid = false; 162 } 163 if (isValid && isNonNegative && NON_NEGATIVE_REGEX.test(controlValue) == false && (watermark == undefined || controlValue != watermark)) { //isNonNegative 164 invalidReason = "isNonNegative"; 165 isValid = false; 166 } 167 if (isValid && isEnglishLettersAndNumbersOnly && ENGLISH_LETTERS_AND_NUMBERS_ONLY_REGEX.test(controlValue) == false && (watermark == undefined || controlValue != watermark)) { //isEnglishLettersAndNumbersOnly 168 invalidReason = "isEnglishLettersAndNumbersOnly"; 169 isValid = false; 170 } 171 if (isValid && isUrl && URL_REGEX.test(controlValue) == false && (watermark == undefined || controlValue != watermark)) { //isUrl 172 invalidReason = "isUrl"; 173 isValid = false; 174 } 175 176 if (isValid == false) { 177 isValidForm = false; 178 179 $this.attr("aria-invalid", "true"); 180 181 //display error message or error message summery 182 var displayErrorMessage = $this.data("validation-display-error-message"); 183 var displayErrorMessageSummery = validationConfigurationControl.data("validation-display-error-message-summery"); 184 185 if ((displayErrorMessage != null && displayErrorMessage == true) || 186 (displayErrorMessageSummery != null && displayErrorMessageSummery == true)) { 187 //get the error message by error type 188 var errorMessage = null; 189 190 if (invalidReason == "isRequired") 191 errorMessage = $this.data("validation-is-required-error-message"); 192 else if (invalidReason == "isEmail") 193 errorMessage = $this.data("validation-is-email-error-message"); 194 else if (invalidReason == "isNumber") 195 errorMessage = $this.data("validation-is-number-error-message"); 196 else if (invalidReason == "isInteger") 197 errorMessage = $this.data("validation-is-integer-error-message"); 198 else if (invalidReason == "isNonNegative") 199 errorMessage = $this.data("validation-is-non-negative-error-message"); 200 else if (invalidReason == "isEnglishLettersAndNumbersOnly") 201 errorMessage = $this.data("validation-is-english-letters-and-numbers-only-error-message"); 202 else if (invalidReason == "isUrl") 203 errorMessage = $this.data("validation-is-url-error-message"); 204 205 if (errorMessage == null || errorMessage == undefined || errorMessage == "") 206 errorMessage = $this.data("validation-general-error-message"); 207 208 if (displayErrorMessage != null && displayErrorMessage == true) { //display error message 209 var errorMessageContainerSelector = null; 210 211 if (invalidReason == "isRequired") 212 errorMessageContainerSelector = $this.data("validation-is-required-error-message-container-selector"); 213 else if (invalidReason == "isEmail") 214 errorMessageContainerSelector = $this.data("validation-is-email-error-message-container-selector"); 215 else if (invalidReason == "isNumber") 216 errorMessageContainerSelector = $this.data("validation-is-number-error-message-container-selector"); 217 else if (invalidReason == "isInteger") 218 errorMessageContainerSelector = $this.data("validation-is-integer-error-message-container-selector"); 219 else if (invalidReason == "isNonNegative") 220 errorMessageContainerSelector = $this.data("validation-is-non-negative-error-message-container-selector"); 221 else if (invalidReason == "isEnglishLettersAndNumbersOnly") 222 errorMessageContainerSelector = $this.data("validation-is-english-letters-and-numbers-only-error-message-container-selector"); 223 else if (invalidReason == "isUrl") 224 errorMessageContainerSelector = $this.data("validation-is-url-error-message-container-selector"); 225 226 if (errorMessageContainerSelector == null || errorMessageContainerSelector == undefined || errorMessageContainerSelector == "") 227 errorMessageContainerSelector = $this.data("validation-general-error-message-container-selector"); 228 229 $(errorMessageContainerSelector).html(errorMessage); 230 } 231 232 if (displayErrorMessageSummery != null && displayErrorMessageSummery == true) { //display error message summery 233 var errorMessageSummeryAddBreakLines = validationConfigurationControl.data("validation-error-message-summery-add-break-lines"); 234 var errorMessageSummerySeparator = validationConfigurationControl.data("validation-error-message-summery-separator"); 235 236 if (errorMessage != null && errorMessage != undefined) { 237 if (errorMessageSummeryAddBreakLines != null && errorMessageSummeryAddBreakLines == true) 238 summeryErrorMessageStr += errorMessage + "<br />"; 239 else if (errorMessageSummerySeparator != null && errorMessageSummerySeparator != "") 240 summeryErrorMessageStr += errorMessage + errorMessageSummerySeparator; 241 } 242 else 243 summeryErrorMessageStr += "validation error message not set for control " + $this.attr("id") + "<br />"; 244 } 245 } //end of display error message or error message summery 246 247 //display popup error message 248 var displayPopupErrorMessage = validationConfigurationControl.data("validation-display-popup-error-message"); 249 if (displayPopupErrorMessage != null && displayPopupErrorMessage == true) { 250 var popupErrorMessage = null; 251 252 if (invalidReason == "isRequired") 253 popupErrorMessage = $this.data("validation-is-required-popup-error-message"); 254 else if (invalidReason == "isEmail") 255 popupErrorMessage = $this.data("validation-is-email-popup-error-message"); 256 else if (invalidReason == "isNumber") 257 popupErrorMessage = $this.data("validation-is-number-popup-error-message"); 258 else if (invalidReason == "isInteger") 259 popupErrorMessage = $this.data("validation-is-integer-popup-error-message"); 260 else if (invalidReason == "isNonNegative") 261 popupErrorMessage = $this.data("validation-is-non-negative-popup-error-message"); 262 else if (invalidReason == "isEnglishLettersAndNumbersOnly") 263 popupErrorMessage = $this.data("validation-is-english-letters-and-numbers-only-popup-error-message"); 264 else if (invalidReason == "isUrl") 265 popupErrorMessage = $this.data("validation-is-url-popup-error-message"); 266 267 if (popupErrorMessage == null || popupErrorMessage == undefined || popupErrorMessage == "") 268 popupErrorMessage = $this.data("validation-general-popup-error-message"); 269 270 if (popupErrorMessage != null && popupErrorMessage != undefined) 271 popupErrorMessageStr += popupErrorMessage + '\n'; 272 else 273 popupErrorMessageStr += "validation popup error message not set for control " + $this.attr("id") + '\n'; 274 } 275 276 //set invalid css class 277 var invalidCssClass = null; 278 279 if (invalidReason == "isRequired") 280 invalidCssClass = $this.data("validation-is-required-invalid-css-class"); 281 else if (invalidReason == "isEmail") 282 invalidCssClass = $this.data("validation-is-email-invalid-css-class"); 283 else if (invalidReason == "isNumber") 284 invalidCssClass = $this.data("validation-is-number-invalid-css-class"); 285 else if (invalidReason == "isInteger") 286 invalidCssClass = $this.data("validation-is-integer-invalid-css-class"); 287 else if (invalidReason == "isNonNegative") 288 invalidCssClass = $this.data("validation-is-non-negative-invalid-css-class"); 289 else if (invalidReason == "isEnglishLettersAndNumbersOnly") 290 invalidCssClass = $this.data("validation-is-english-letters-and-numbers-only-invalid-css-class"); 291 else if (invalidReason == "isUrl") 292 invalidCssClass = $this.data("validation-is-url-invalid-css-class"); 293 294 if (invalidCssClass == null || invalidCssClass == undefined || invalidCssClass == "") 295 invalidCssClass = $this.data("validation-general-invalid-css-class"); 296 297 if (invalidCssClass != null && invalidCssClass != "") { //if has invali
297d css class 298 var invalidCssClassTargetElementSelector = null; 299 300 if (invalidReason == "isRequired") 301 invalidCssClassTargetElementSelector = $this.data("validation-is-required-invalid-css-class-target-element-selector"); 302 else if (invalidReason == "isEmail") 303 invalidCssClassTargetElementSelector = $this.data("validation-is-email-invalid-css-class-target-element-selector"); 304 else if (invalidReason == "isNumber") 305 invalidCssClassTargetElementSelector = $this.data("validation-is-number-invalid-css-class-target-element-selector"); 306 else if (invalidReason == "isInteger") 307 invalidCssClassTargetElementSelector = $this.data("validation-is-integer-invalid-css-class-target-element-selector"); 308 else if (invalidReason == "isNonNegative") 309 invalidCssClassTargetElementSelector = $this.data("validation-is-non-negative-invalid-css-class-target-element-selector"); 310 else if (invalidReason == "isEnglishLettersAndNumbersOnly") 311 invalidCssClassTargetElementSelector = $this.data("validation-is-english-letters-and-numbers-only-invalid-css-class-target-element-selector"); 312 else if (invalidReason == "isUrl") 313 invalidCssClassTargetElementSelector = $this.data("validation-is-url-invalid-css-class-target-element-selector"); 314 315 if (invalidCssClassTargetElementSelector == null || 316 invalidCssClassTargetElementSelector == undefined || 317 invalidCssClassTargetElementSelector == "") 318 invalidCssClassTargetElementSelector = $this.data("validation-general-invalid-css-class-target-element-selector"); 319 320 if (invalidCssClassTargetElementSelector != null && 321 invalidCssClassTargetElementSelector != undefined && 322 invalidCssClassTargetElementSelector != "") 323 $(invalidCssClassTargetElementSelector).addClass(invalidCssClass); 324 else 325 $this.addClass(invalidCssClass); 326 } 327 328 //run invalid client function 329 var invalidClientFunction = null; 330 331 if (invalidReason == "isRequired") 332 invalidClientFunction = $this.data("validation-is-required-invalid-client-function"); 333 else if (invalidReason == "isEmail") 334 invalidClientFunction = $this.data("validation-is-email-invalid-client-function"); 335 else if (invalidReason == "isNumber") 336 invalidClientFunction = $this.data("validation-is-number-invalid-client-function"); 337 else if (invalidReason == "isInteger") 338 invalidClientFunction = $this.data("validation-is-integer-invalid-client-function"); 339 else if (invalidReason == "isNonNegative") 340 invalidClientFunction = $this.data("validation-is-non-negative-invalid-client-function"); 341 else if (invalidReason == "isEnglishLettersAndNumbersOnly") 342 invalidClientFunction = $this.data("validation-is-english-letters-and-numbers-only-invalid-client-function"); 343 else if (invalidReason == "isUrl") 344 invalidClientFunction = $this.data("validation-is-url-invalid-client-function"); 345 346 if (invalidClientFunction == null || 347 invalidClientFunction == undefined || 348 invalidClientFunction == "") 349 invalidClientFunction = $this.data("validation-general-invalid-client-function"); 350 351 if (invalidClientFunction != null && invalidClientFunction != undefined && invalidClientFunction != "") { 352 if (typeof (window[invalidClientFunction]) == "function") //check that the function exists 353 window[invalidClientFunction](this, invalidReason); 354 else 355 alert('error running function "' + invalidClientFunction + '", check that it exists and its scope'); 356 } 357 } //end of "if (isValid == false)" 358 }); //end of "controlsToValidate.each" 359 360 if (summeryErrorMessageStr != "") { //display error message summery 361 var errorMessageSummeryContainerSelector = validationConfigurationControl.data("validation-error-message-summery-container-selector"); 362 var errorMessageSummeryAddBreakLines = validationConfigurationControl.data("validation-error-message-summery-add-break-lines"); 363 var errorMessageSummerySeparator = validationConfigurationControl.data("validation-error-message-summery-separator"); 364 365 if (errorMessageSummeryAddBreakLines != null && errorMessageSummeryAddBreakLines == true) 366 summeryErrorMessageStr = summeryErrorMessageStr.substring(0, summeryErrorMessageStr.length - 6); 367 else if (errorMessageSummerySeparator != null && errorMessageSummerySeparator != "") 368 summeryErrorMessageStr = summeryErrorMessageStr.substring(0, summeryErrorMessageStr.length - errorMessageSummerySeparator.length); 369 370 $(errorMessageSummeryContainerSelector).html(summeryErrorMessageStr); 371 } 372 373 if (popupErrorMessageStr != "") { //display popup error message 374 popupErrorMessageStr = popupErrorMessageStr.substring(0, popupErrorMessageStr.length - 1); 375 alert(popupErrorMessageStr); 376 } 377 378 return isValidForm; 379 } //end of "function validateControls(controlsToValidate)" 380 381 function clearControlErrorMessages(control) { 382 //clear error messages 383 clearElement(control.data("validation-general-error-message-container-selector")); //general 384 clearElement(control.data("validation-is-required-error-message-container-selector")); //is-required 385 clearElement(control.data("validation-is-email-error-message-container-selector")); //is-email 386 clearElement(control.data("validation-is-number-error-message-container-selector")); //is-number 387 clearElement(control.data("validation-is-integer-error-message-container-selector")); //is-integer 388 clearElement(control.data("validation-is-non-negative-error-message-container-selector")); //is-non-negative 389 clearElement(control.data("validation-is-english-letters-and-numbers-only-error-message-container-selector")); //is-english-letters-and-numbers-only 390 clearElement(control.data("validation-is-url-error-message-container-selector")); //is-url 391 392 function clearElement(elementSelector) { 393 if (elementSelector != null && 394 elementSelector != undefined && 395 elementSelector != "") 396 $(elementSelector).html(""); 397 } 398 399 //clear css classes 400 var generalInvalidCssClassTargetElementSelector = null; 401 if (control.data("validation-general-invalid-css-class-target-element-selector") != null && 402 control.data("validation-general-invalid-css-class-target-element-selector") != undefined && 403 control.data("validation-general-invalid-css-class-target-element-selector") != "") 404 generalInvalidCssClassTargetElementSelector = control.data("validation-general-invalid-css-class-target-element-selector"); 405 406 //general 407 removeInvalidCssClass(control, control.data("validation-general-invalid-css-class"), null, generalInvalidCssClassTargetElementSelector); 408 409 //remove general class from specific error types target elements 410 removeInvalidCssClass(control, control.data("validation-general-invalid-css-class"), control.data("validation-is-required-invalid-css-class-target-element-selector"), generalInvalidCssClassTargetElementSelector); 411 removeInvalidCssClass(control, control.data("validation-general-invalid-css-class"), control.data("validation-is-email-invalid-css-class-target-element-selector"), generalInvalidCssClassTargetElementSelector); 412 removeInvalidCssClass(control, control.data("validation-general-invalid-css-class"), control.data("validation-is-number-invalid-css-class-target-element-selector"), generalInvalidCssClassTargetElementSelector); 413 removeInvalidCssClass(control, control.data("validation-general-invalid-css-class"), control.data("validation-is-integer-invalid-css-class-target-element-selector"), generalInvalidCssClassTargetElementSelector); 414 removeInvalidCssClass(control, control.data("validation-general-invalid-css-class"), control.data("validation-is-non-negative-invalid-css-class-target-element-selector"), generalInvalidCssClassTargetElementSelector); 415 removeInvalidCssClass(control, control.data("validation-general-invalid-css-class"), control.data("validation-is-english-letters-and-numbers-only-invalid-css-class-target-element-selector"), generalInvalidCssClassTargetElementSelector); 416 removeInvalidCssClass(control, control.data("validation-general-invalid-css-class"), control.data("validation-is-url-invalid-css-class-target-element-selector"), generalInvalidCssClassTargetElementSelector); 417 418 removeInvalidCssClass(control, //is-required 419 control.data("validation-is-required-invalid-css-class"), 420 control.data("validation-is-required-invalid-css-class-target-element-selector"), 421 generalInvalidCssClassTargetElementSelector); 422 423 removeInvalidCssClass(control, //is-email 424 control.data("validation-is-email-invalid-css-class"), 425 control.data("validation-is-email-invalid-css-class-target-element-selector"), 426 generalInvalidCssClassTargetElementSelector); 427 428 removeInvalidCssClass(control, //is-number 429 control.data("validation-is-number-invalid-css-class"), 430 control.data("validation-is-number-invalid-css-class-target-element-selector"), 431 generalInvalidCssClassTargetElementSelector); 432 433 removeInvalidCssClass(control, //is-integer 434 control.data("validation-is-integer-invalid-css-class"), 435 control.data("validation-is-integer-invalid-css-class-target-element-selector"), 436 generalInvalidCssClassTargetElementSelector); 437 438 removeInvalidCssClass(control, //is-non-negative 439 control.data("validation-is-non-negative-invalid-css-class"), 440 control.data("validation-is-non-negative-invalid-css-class-target-element-selector"), 441 generalInvalidCssClassTargetElementSelector); 442 443 removeInvalidCssClass(control, //is-english-letters-and-numbers-only 444 control.data("validation-is-english-letters-and-numbers-only-invalid-css-class"), 445 control.data("validation-is-english-letters-and-numbers-only-invalid-css-class-target-element-selector"), 446 generalInvalidCssClassTargetElementSelector); 447 448 removeInvalidCssClass(control, //is-url 449 control.data("validation-is-url-invalid-css-class"), 450 control.data("validation-is-url-invalid-css-class-target-element-selector"), 451 generalInvalidCssClassTargetElementSelector); 452 453 function removeInvalidCssClass(control, invalidCssClass, invalidCssClassTargetElementSelector, generalInvalidCssClassTargetElementSelector) { 454 if (invalidCssClass != null && invalidCssClass != undefined && invalidCssClass != "") { 455 if (invalidCssClassTargetElementSelector != null && invalidCssClassTargetElementSelector != undefined && invalidCssClassTargetElementSelector != "") 456 $(invalidCssClassTargetElementSelector).removeClass(invalidCssClass); 457 else if (generalInvalidCssClassTargetElementSelector != null) 458 $(generalInvalidCssClassTargetElementSelector).removeClass(invalidCssClass); 459 else 460 control.removeClass(invalidCssClass); 461 } 462 } 463 464 //execute valid client functions
465 executeValidClientFunction(control.data("validation-general-valid-client-function"), control, ""); 466 executeValidClientFunction(control.data("validation-is-required-valid-client-function"), control, "isRequired"); 467 executeValidClientFunction(control.data("validation-is-email-valid-client-function"), control, "isEmail"); 468 executeValidClientFunction(control.data("validation-is-number-valid-client-function"), control, "isNumber"); 469 executeValidClientFunction(control.data("validation-is-integer-valid-client-function"), control, "isInteger"); 470 executeValidClientFunction(control.data("validation-is-non-negative-valid-client-function"), control, "isNonNegative"); 471 executeValidClientFunction(control.data("validation-is-english-letters-and-numbers-only-valid-client-function"), control, "isEnglishLettersAndNumbersOnly"); 472 executeValidClientFunction(control.data("validation-is-url-valid-client-function"), control, "isUrl"); 473 474 function executeValidClientFunction(validClientFunction, sender, validReason) { 475 if (validClientFunction != null && validClientFunction != undefined && validClientFunction != "") { 476 if (typeof (window[validClientFunction]) == "function") //check that the function exists 477 window[validClientFunction](sender, validReason); 478 else 479 alert('error running function "' + validClientFunction + '", check that it exists and its scope'); 480 } 481 } 482 } // end of "function clearControlErrorMessages(control)" 483}); 484 485//validates the watermark 486function checkWatermark(sender, args) { 487 var tb = document.getElementById(sender.controltovalidate); 488 489 if (tb.value == tb.getAttribute("data-watermark")) 490 args.IsValid = false; 491 else 492 args.IsValid = true; 493}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.