1/// <reference path="LiveFormValidation.js" /> 2function validatenumerics(key) { 3 //getting key code of pressed key 4 var keycode = (key.which) ? key.which : key.keyCode; 5 //comparing pressed keycodes 6 7 if (keycode > 31 && (keycode < 48 || keycode > 57)) { 8 return false; 9 } 10 else return true; 11}; 12 13//$.validator.messages.wordcount = 'Please enter no more than {0} words'; 14//$.validator.messages.alphanumeric = 'This field can only contain letters and numbers'; 15$.validator.addMethod("vmaxlength", $.validator.methods.maxlength, LFValidations.vmaxlength); 16$.validator.addMethod('rbrequired', function (value, element) { 17 if ($(element).closest('.Field.Radiobutton').find("input:checked").length == 1 && $(element).closest('.Field.Radiobutton').find("input:checked").val() == "&%&" && $(element).closest('.Field.Radiobutton').find('input[type=hidden]').val() == "") { 18 return false; 19 } 20 else 21 return true; 22}, LFValidations.required); 23$.validator.addMethod('cbrequired', function (value, element) { 24 if ($(element).closest('.Field.Checkbox').find("input:checked").length == 1 && $(element).closest('.Field.Checkbox').find("input:checked").val() == "&%&" && $(element).closest('.Field.Checkbox').find('input[type=hidden]').val() == "") { 25 return false; 26 } 27 else if ($(element).closest('.Field.Checkbox').find("input:checked").length < 1) 28 return false; 29 else 30 return true; 31}, LFValidations.cbrequired); 32 33$.validator.addMethod('matrixCbrequired', function (value, element) { 34 if ($(element).closest('tr').find("input:checked").length < 1) 35 return false; 36 else 37 return true; 38}, LFValidations.required); 39 40$.validator.addMethod('matrixddlrequired', function (value, element) { 41 if ($(element).find('option:selected').index() == 0) 42 return false; 43 else 44 return true; 45}, LFValidations.required); 46 47$.validator.addMethod('checkCaptcha', function (value, element) { 48 if ($(element).closest('.Field.Checkbox').find("input:checked").length < 1) 49 return false; 50 else 51 return true; 52}, LFValidations.cbrequired); 53 54$.validator.addMethod('wordcount', function (value, element) { 55 var wordCount = $(element).attr('wordcount'); 56 if ($(element).val().split(" ").length > wordCount) 57 return false; 58 else 59 return true; 60}, LFValidations.wordcount); 61 62$.validator.addMethod('alphanumeric', function (value, element) { 63 var ele = $(element).val(); 64 if (ele != "") { 65 var re = /^[a-zA-Z0-9]+$/; 66 if (re.test(ele)) 67 return true; 68 else 69 return false; 70 } 71 else 72 return true; 73}, LFValidations.alphanumeric); 74 75$.validator.addMethod('alphabetic', function (value, element) { 76 var ele = $(element).val(); 77 if (ele != "") { 78 var re = /^[a-zA-Zs]+$/; 79 if (re.test(ele)) 80 return true; 81 else 82 return false; 83 } 84 else 85 return true; 86}, LFValidations.alphabetic); 87 88$.validator.addMethod('numeric', function (value, element) { 89 var ele = $(element).val(); 90 if (ele != "") { 91 var re = new RegExp("^[0-9]{" + ele.length + "}$"); 92 if (re.test(ele)) 93 return true; 94 else 95 return false; 96 } 97 else 98 return true; 99}, LFValidations.numeric); 100 101$.validator.addMethod('custom', function (value, element) { 102 if ($(element).parent().children('.customsetting').html() != "") { 103 var re = new RegExp($(element).parent().children('.customsetting').html()); 104 if (re.test(value)) 105 return true; 106 else 107 return false; 108 } 109 else 110 return true; 111}, LFValidations.custom); 112 113 114$.validator.addMethod('scorerequired', function (value, element) { 115 if ($(element).parent().find('div input[type=hidden]').val() == "") 116 return false; 117 else 118 return true; 119}, LFValidations.scorerequired); 120 121$.validator.addMethod('scalerequired', function (value, element) { 122 if ($(element).parent().parent().find('input[type=radio]').is(":checked") == true) 123 return true; 124 else 125 return false; 126}, LFValidations.scalerequired); 127 128$.validator.addMethod('isvaliddate', function (value, element) { 129 var month, day, year, hour, minute; 130 if ($(element).val() != "") { 131 $($(element).parent().parent().find('span.Field-SubLabel-TextBox')).each(function (index, item) { 132 if ($(item).find('input').length != 0) { 133 if ($(item).find('input').attr('class').indexOf("datepicker_month") != -1)
134 month = $(item).find('input').val(); 135 else if ($(item).find('input').attr('class').indexOf("datepicker_day") != -1) 136 day = $(item).find('input').val(); 137 else if ($(item).find('input').attr('class').indexOf("datepicker_year") != -1) 138 year = $(item).find('input').val(); 139 } 140 if ($(item).find('select').length != 0) { 141 if ($(item).find('select').attr('class').indexOf("datepicker_month") != -1) 142 month = $(item).find('select').val(); 143 if (month == "0") 144 month = ""; 145 if ($(item).find('select').attr('class').indexOf("datepicker_hour") != -1) 146 hour = $(item).find('select').val(); 147 else if ($(item).find('select').attr('class').indexOf("datepicker_minute") != -1) 148 minute = $(item).find('select').val(); 149 } 150 }); 151 if (month == undefined) 152 month = ""; 153 if (day == undefined) 154 day = ""; 155 if (year == undefined) 156 year = ""; 157 if (hour == undefined) 158 hour = ""; 159 if (minute == undefined) 160 minute = ""; 161 if (month != "" && day != "" && year != "" && hour != "" && minute != "") { 162 var dt = new Date(parseInt(year, 10), parseInt(month, 10) - 1, parseInt(day, 10), parseInt(hour, 10), parseInt(minute, 10), 00, 00); 163 if (dt.getDate() != parseInt(day, 10) || dt.getMonth() != (parseInt(month, 10) - 1) || dt.getFullYear() != parseInt(year, 10)) { 164 return false; 165 } 166 else 167 return true; 168 } 169 else if (month != "" && day != "" && year != "" && hour == "" && minute == "") { 170 var dt = new Date(parseInt(year, 10), parseInt(month, 10) - 1, parseInt(day, 10), 00, 00, 00, 00); 171 if (dt.getDate() != parseInt(day, 10) || dt.getMonth() != (parseInt(month, 10) - 1) || dt.getFullYear() != parseInt(year, 10)) { 172 return false; 173 } 174 else 175 return true; 176 } 177 else if (month == "" && (day != "" || year != "")) 178 return false; 179 else if (day == "" && (month != "" || year != "")) 180 return false; 181 else if (year == "" && (day != "" || month != "")) 182 return false; 183 else if (year == "" && day == "" && month == "" && (hour != "" || minute != "")) 184 return false; 185 else if (year != "" && day != "" && month != "" && (hour == "" || minute == "")) 186 return false; 187 else 188 return true; 189 } 190 else 191 return true; 192}, LFValidations.isvaliddate); 193 194$.validator.addMethod('furequired', function (value, element) { 195 if ($(element).parent().find('.plupload_content').length == 0) 196 return true; 197 if ($(element).parent().find('.plupload_content').attr('controlid').length > 0) { 198 var object = $(element).parent().find('.plupload_content').attr('controlid') + ".files.length==0"; 199 var resume = true; 200 if ($(element).parent().find('.fileresume').length > 0) { 201 var val = $("#" + $(element).parent().find('.fileresume').attr('id')).val(); 202 if (val !== null && val.trim() !== '') { 203 resume = false; 204 } 205 } 206 207 if (eval(object) && resume) 208 return false; 209 else 210 return true; 211 } 212 else 213 return true; 214}, LFValidations.furequired); 215 216$.validator.addMethod('fbrequired', function (value, element) { 217 var ele = $(element).val(); 218 if (ele) { 219 return true; 220 } 221 else 222 return false; 223}, LFValidations.fbrequired); 224 225$(document).ready(function () { 226 227 //$(".Field .Textarea textarea") 228 229 $(".Field.Textarea textarea").bind('input propertychange', function () { 230 231 if ($(this).attr('vmaxlength') != undefined) { 232 233 var vmaxlength = $(this).attr('vmaxlength'); 234 var remainingCount = parseInt(vmaxlength) - this.value.length; 235 if (remainingCount > -1) { 236 $(this).siblings('.spancounter').text(remainingCount).removeClass('error'); 237 } 238 else { 239 $(this).siblings('.spancounter').text(remainingCount).addClass('error'); 240 } 241 } 242 else if ($(this).attr('wordcount') != undefined) { 243 244 var wordcount = $(this).attr('wordcount'); 245 var words = $(this).val().split(' '); 246 var remainingwordCount = parseInt(wordcount) - parseInt(words.length) 247 if (remainingwordCount > -1) 248 $(this).siblings('.spancounter').text(remainingwordCount).removeClass('error'); 249 else 250 $(this).siblings('.spancounter').text(remainingwordCount).addClass('error'); 251 } 252 253 });
254 255 $(".Field.Phone input[type=text].phone").each(function (index) { 256 if (typeof $(this).attr("placeholder") != 'undefined') 257 $("#" + $(this).attr("id")).mask($(this).attr("placeholder"), { clearIfNotMatch: true }); 258 }); 259 260 $(".Field.Textbox input[type=text].mask").each(function (index) { 261 if (typeof $(this).attr("placeholder") != 'undefined') 262 $("#" + $(this).attr("id")).mask($(this).attr("placeholder"), { clearIfNotMatch: true }); 263 }); 264 265 $(".Field.Password .strength").each(function (index) { 266 var options = {}; 267 options.ui = { 268 container: "#" + $(this).attr("id"), 269 showVerdictsInsideProgressBar: true, 270 progressBarEmptyPercentage: 0, 271 progressBarMinPercentage: 25, 272 viewports: { 273 progress: "#" + $(this).attr("id") + "_viewport_progress" 274 } 275 }; 276 $("#" + $(this).attr("id") + '_Password').pwstrength(options); 277 $("#" + $(this).attr("id") + '_Password').pwstrength("addRule", "testRule" + index, function (options, word, score) { 278 return word.match(/[0-9]/) && score; 279 }, 5, true); 280 }); 281 282 $('.Field.Required.Fileupload input').attr("furequired", "furequired"); 283 $(".Field.Required.Fileupload input.fileresume").removeAttr('furequired'); 284 285 $('.Field.CkEditor.Required div.Field-Container-Wide').attr("editorrequired", "true"); 286 $('.Field.CkEditor.Required div.Field-Container').attr("editorrequired", "true"); 287 288 $(".Field.CkEditor").each(function (index) { 289 if (typeof $(this).attr("guid") != 'undefined') { 290 var GUID = $(this).attr("guid").replace(/-/g, ''); 291 $(this).addClass('ck' + GUID.toLowerCase() + 'ck'); 292 } 293 }); 294 295 //Do Not Validate Required on Hidden Fields such as Allow Other in Radiobutton/Checkboxes 296 $('.Field input[type=hidden]').addClass("nrequired"); 297 298 //Validate Required on All Inputs, Textareas & Selects Except Checkbox and those that explictly have "nrequired" class 299 $(".Field.Required:not(.Checkbox) input:not(.nrequired),.Field.Required select,.Field.Required textarea").attr("required", ""); 300 301 $(".Field.Required input,.Field.Required select,.Field.Required textarea").attr("aria-required", true); 302 303 //Validate Required on Radiobutton other fieds validate 304 $(".Field.Required.Radiobutton input[type=radio]:not(.nrequired)").attr("rbrequired", "rbrequired"); 305 306 //Validate Required on Tag 307 $(".Field.Tag.Required input").attr("tagrequired", "tagrequired"); 308 $('.Field.Tag.Required div.Field-Container-Wide').attr("tagrequired", "true"); 309 $('.Field.Tag.Required div.Field-Container').attr("tagrequired", "true"); 310 311 $(".Field.SingleReference.Required input").attr("tagrequired", "tagrequired"); 312 $('.Field.SingleReference.Required div.Field-Container-Wide').attr("tagrequired", "true"); 313 $('.Field.SingleReference.Required div.Field-Container').attr("tagrequired", "true"); 314 315 $(".Field.MultiReference.Required input").attr("tagrequired", "tagrequired"); 316 $('.Field.MultiReference.Required div.Field-Container-Wide').attr("tagrequired", "true"); 317 $('.Field.MultiReference.Required div.Field-Container').attr("tagrequired", "true"); 318 319 //Add attribute for Captcha 320 $('.Field.Captcha .mliveformcaptcha .textarea').attr("aria-label", "No value"); 321 322 //Validate Required on Checkbox 323 $(".Field.Required.Checkbox input[type=checkbox]:not(.nrequired)").attr("cbrequired", "cbrequired"); 324 325 //Validate Required on matrix checkbox 326 $(".Field.Required.Matrix input[type=checkbox]").removeAttr('required'); 327 $(".Field.Required.Matrix input[type=checkbox]").attr("matrixCbrequired", "matrixCbrequired"); 328 329 $(".Field.Matrix input[type=checkbox]").attr("aria-label", "Close"); 330 $(".Field.Matrix input[type=radio]").attr("aria-label", "Close"); 331 332 //Validate Required on matrix dropdownlist 333 $(".Field.Required.Matrix select").removeAttr('required'); 334 $(".Field.Required.Matrix select").attr("matrixddlrequired", "matrixddlrequired"); 335 336 //Validate Email 337 $(".Field.Email input[type=text]").attr("email", "email"); 338 339 //Validate Cutom in Email field 340 $(".Field.Email.Custom input[type=text]").removeAttr('email'); 341 $(".Field.Email.Custom input[type=text]").attr("custom", "custom"); 342 343 //Validate CreditCard 344 jQuery(window).on('load', function () { 345 $(".Field.Fileupload input[type=file]").attr("aria-readonly", "true"); 346 let textarea = document.getElementById("g-recaptcha-response"); 347 if (textarea != null) { 348 textarea.setAttribute("aria-hidden", "true"); 349 textarea.setAttribute("aria-label", "do not use"); 350 textarea.setAttribute("aria-readonly", "true"); 351 } 352 });
353 354 //Validate Alphanumeric 355 $(".Field.AlphaNumeric input[type=text]").attr("alphanumeric", "alphanumeric"); 356 357 //Validate Custom 358 $(".Field.Textbox.Custom input[type=text]").attr("custom", "custom"); 359 $(".Field.Textarea.Custom textarea").attr("custom", "custom"); 360 361 //Validate Alphabetic 362 $(".Field.Alphabetic input[type=text]").attr("alphabetic", "alphabetic"); 363 364 //Validate Numeric 365 $(".Field.Numeric input[type=text]").attr("numeric", "numeric"); 366 $(".Field.CreditCard input[type=text].CVV").attr("numeric", "numeric"); 367 368 // Validate Datetime 369 $(".Field.Datetime input[type=text]").attr("isvaliddate", "isvaliddate"); 370 $(".Field.Datetime select").attr("isvaliddate", "isvaliddate"); 371 372 // Validate BirthDate 373 $(".Field.Birthdate input[type=text]").attr("isvaliddate", "isvaliddate"); 374 $(".Field.Birthdate select").attr("isvaliddate", "isvaliddate"); 375 376 //Validate StarRating 377 $(".Field.Required.StarRating input[type=hidden].starratinghidden").removeClass('nrequired').attr("scorerequired", "scorerequired"); 378 379 //Validate ScaleRating 380 $(".Field.Required.ScaleRating input[type=hidden]").attr("scalerequired", "scalerequired"); 381 $(".Field.Required.ScaleRating input[type=radio]").removeAttr('required'); 382 383 $(".Field.BrowseFile.Required input[required=required]").removeAttr('required'); 384 385 //Handle Required on Radiobutton & Checkbox Allow Other 386 //Code Commented since Valiation Plugin is unable to handle the error placement for a Textbox that's inside a label 387 //$('.Field.Radiobutton input:not([type=hidden]),.Field.Checkbox input[type=checkbox]:not([type=hidden])').change(function () { 388 // if ($(this).val() == 'Other') { 389 // $(this).closest('.Field-Container').find('input[type=text]').removeClass('nrequired').attr('required', ''); 390 // } else { 391 // $(this).closest('.Field-Container').find('input[type=text]').addClass('nrequired').removeAttr('required'); 392 // } 393 //}); 394 395 396 // Initialize validation on the entire ASP.NET form. 397 jQuery.validator.setDefaults({ 398 //debug: true, 399 onsubmit: false, 400 ignore: ".novalidate", 401 rules: { 402 success: function (error) { 403 error.remove(); 404 } 405 }, 406 errorPlacement: function (error, element) { 407 if (element.closest('.ms-form-group').hasClass("Radiobutton") || element.closest('.ms-form-group').hasClass("Checkbox")) { 408 error.appendTo(element.closest('.ms-form-group')); 409 return; 410 } 411 else if (element.closest('.Field').hasClass("Radiobutton")) { 412 error.insertAfter(element.closest('.Field').find('.Field-Container')); 413 error.insertAfter(element.closest('.Field').find('.Field-Container-Wide')); 414 return; 415 } 416 else if (element.closest('.Field').hasClass("Matrix")) { 417 if ($(element).attr('type') == 'radio' || $(element).attr('type') == 'checkbox') { 418 if ($(element).closest('tr').find('.tdBlank').find('.error').length < 1) 419 element.closest('tr').find('.tdBlank').append(error); 420 return; 421 } 422 else if ($(element).attr('type') == 'text' || $(element).attr('type') == 'number' || $(element).is('select')) { 423 $(element).closest('tbody').find('.tdBlank').find('.error').remove(); 424 $(element).closest('tbody').find('.tdBlank').first().append(error); 425 return; 426 } 427 } 428 else if (element.closest('.Field').hasClass("Phone")) { 429 if (element.hasClass('AreaCode')) 430 return; 431 } 432 else if (element.closest('.Field').hasClass("Textarea")) { 433 if (element.next('.spancounter').length) 434 error.insertAfter(element.next('.spancounter')); 435 else { 436 error.insertAfter(element.closest('.Field').find('.Field-Container')); 437 error.insertAfter(element.closest('.Field').find('.Field-Container-Wide')); 438 } 439 return; 440 } 441 else if (element.closest('.Field').hasClass("Checkbox") || element.closest('.Field').hasClass("Datetime") || element.closest('.Field').hasClass("Time") || element.closest('.Field').hasClass("Birthdate") || element.closest('.Field').hasClass("Fullname") || element.closest('.Field').hasClass("Address")) { 442 443 if (element.closest('.Field').find('label.error').length == 0 || (element.closest('.Field').find('label.error').length > 0 && element.closest('.Field').find('label.error').is(":visible") == false)) { 444 error.insertAfter(element.closest('.Field').find('.Field-Container')); 445 error.insertAfter(element.closest('.Field').find('.Field-Container-Wide')); 446 } 447 return; 448 449 } 450 451 452 453 error.insertAfter(element); 454 455 } 456 });
457 458 //$("#form1").validate({ 459 // // This prevents validation from running on every 460 // // form submission by default. 461 462 // onsubmit: false, 463 464 465 //}); 466 467 // Search for controls marked with the causesValidation flag 468 // that are contained anywhere within elements marked as 469 // validationGroups, and wire their click event up. 470 $('.validationGroup .causesValidation').click(ValidateAndSubmit); 471 $('.validationGroup .SaveAndResume').click(SaveAndResume); 472 // Select any input[type=text] elements within a validation group 473 // and attach keydown handlers to all of them. 474 $('.validationGroup :password,.validationGroup :text').keydown(function (evt) { 475 // Only execute validation if the key pressed was enter. 476 if (evt.keyCode == 13) { 477 ValidateAndSubmit(evt); 478 } 479 }); 480}); 481 482function SaveAndResume() { 483 //Finish client side operations 484 $('.Field.Currency input').each(function () { 485 $(this).select(); 486 $(this).next().val($(this).maskMoney('unmasked')[0]); 487 }); 488}; 489 490function ValidateAndSubmit(evt) { 491 492 //Show the loading icons 493 jQuery(".lfoverlay").show(); 494 jQuery(".lfmodal").show(); 495 496 //Finish client side operations 497 $('.Field.Currency input').each(function () { 498 $(this).select(); 499 $(this).next().val($(this).maskMoney('unmasked')[0]); 500 }); 501 502 503 504 $('.Field.Dropdown select').each(function () { 505 $(this).prev().val($(this).find('option:selected').text()); 506 }); 507 508 $('.Field.Radiobutton table').each(function () { 509 $(this).prev().val($(this).find('input:checked').next().text()); 510 }); 511 512 $('.Field.Checkbox table').each(function () { 513 $(this).prev().val($(this).find('input:checkbox:checked').map(function () { 514 return $(this).next().text(); 515 }).get().join(',')); 516 }); 517 518 519 520 521 // Ascend from the button that triggered this click event 522 // until we find a container element flagged with 523 // .validationGroup and store a reference to that element. 524 525 var $group = $(evt.currentTarget).parents('.validationGroup'); 526 527 var isValid = true; 528 // Descending from that .validationGroup element, find any input 529 // elements within it, iterate over them, and run validation on 530 // each of them. 531 $group.validate(); 532 var focus = new Array(); 533 $group.find(':input').each(function (i, item) { 534 if ($(item).is(':visible') && !$(item).valid()) { 535 focus.push(item); 536 isValid = false; 537 } 538 else if ($(item).attr('furequired') == "furequired" && !$(item).valid()) { 539 focus.push(item); 540 isValid = false; 541 } 542 else if ($(item).attr('fbrequired') == "fbrequired" && !$(item).valid()) { 543 focus.push(item); 544 isValid = false; 545 } 546 else if ($(item).attr('tagrequired') == "tagrequired") { 547 if ($(item).parent('div').attr('tagrequired') != undefined && $(item).parent('div').attr('tagrequired') == "true") { 548 if ($(item).parent('div').find("tag").length < 1) { 549 $("#label" + $(item).attr('tag') + "").remove(); 550 $("<label id=label" + $(item).attr('tag') + " class=\"error\">" + LFValidations.required + "</label>").insertAfter($(item)); 551 isValid = false; 552 } 553 else { 554 $("#label" + $(item).attr('tag') + "").remove(); 555 } 556 } 557 } 558 else if ($(item).attr('ckeditor') == "required") { 559 if ($(item).parent('div').attr('editorrequired') != undefined && $(item).parent('div').attr('editorrequired') == "true") { 560 $.each(CKEDITOR.instances, function (key, editor) { 561 if ($(editor.element.$).parent('div').parent('li') != undefined && $(editor.element.$).parent('div').parent('li').is(':visible') == true) { 562 if ($(item).attr('ckeditor') == $(editor.element.$).attr('ckeditor')) { 563 if (editor.getData() == "") { 564 $("#label" + $(item).attr('ckeditor') + "").remove(); 565 $("<label id=label" + $(item).attr('ckeditor') + " class=\"error\">" + LFValidations.required + "</label>").insertAfter($(item).parent('div').children('div')); 566 isValid = false; 567 } 568 else { 569 $("#label" + $(item).attr('ckeditor') + "").remove(); 570 } 571 } 572 } 573 }) 574 } 575 } 576 var pagesection_Visible = true; 577 var pagesection = $(item).closest('ul.page-break-section'); // in case of multiple captcha in a form with page breck 578 if (pagesection && !$(pagesection).is(':visible')) 579 pagesection_Visible = false; 580 if (pagesection_Visible && $(item).hasClass('g-recaptcha-response') && !$(item).hasClass('novalidate')) { 581 var captchadiv = $(item).closest('div[googlerecaptchaid]'); 582 var captcharesponse = grecaptcha.getResponse($(captchadiv).attr('googlerecaptchaid')); 583 $("#" + $(captchadiv).attr("id") + " .error").remove(); 584 if (captcharesponse.length == 0) { 585 isValid = false; 586 $("#" + $(captchadiv).attr("id")).append('<label class="error">' + LFValidations.recaptcha + '</label>'); 587 } 588 589 } 590 591 });
592 //password validate 593 $group.find('.Field.Password').each(function (i, item) { 594 var password = "", confirmpassword = ""; 595 $(item).find(':input').each(function (i, inputitem) { 596 if ($(inputitem).is(':visible')) { 597 $(inputitem).next('.conmessage').remove(); 598 if ($(inputitem).hasClass('password')) { 599 password = inputitem.value; 600 } 601 else if ($(inputitem).hasClass('confirmpassword')) { 602 $(inputitem).next('.conmessage').remove(); 603 confirmpassword = inputitem.value; 604 if (password != confirmpassword) { 605 focus.push(inputitem); 606 $('<label class="error conmessage">' + LFValidations.matchpassmessage + '</label>').insertAfter(inputitem); 607 isValid = false; 608 } 609 } 610 } 611 }); 612 613 }); 614 615 616 //validate Extension fields 617 isValid = ValidateExtension($group, focus, isValid); 618 619 if ($(focus).length > 0) { 620 $('html,body').animate({ scrollTop: $(focus).first().closest('li').first().offset().top - 100 }, 500, function () { $(focus).first().focus(); }); 621 //$(focus).first().focus(); 622 } 623 // If any fields failed validation, prevent the button's click 624 // event from triggering form submission. 625 if (!isValid) { 626 jQuery(".lfoverlay").hide(); 627 jQuery(".lfmodal").hide(); 628 evt.preventDefault(); 629 } 630 else if (evt.keyCode == 13) { 631 var SubmitButton = $group.find('.causesValidation.bSubmit'); 632 if (SubmitButton.length > 0) { 633 SubmitButton.click(); 634 evt.preventDefault(); 635 } 636 } 637 //else { 638 639 // var url = window.location.href; 640 // if (url.indexOf("?") > -1) 641 // url = url + '&mid=' + parseInt($(this).attr("mid")); 642 // else 643 // url = url + '?mid=' + parseInt($(this).attr("mid")); 644 645 // $.post(url, $('form').serializeArray()).done(function (data) { 646 // var $group = $(evt.currentTarget).parents('.validationGroup'); 647 // var SubmitButton = $group.find('.causesValidation.bSubmit'); 648 // jQuery(".lfoverlay").hide(); 649 // jQuery(".lfmodal").hide(); 650 // var html = $.parseHTML(data); 651 // var dom = $(data); 652 // $('body').find('[uniqueid="LiveForm' + parseInt($(SubmitButton).attr("mid")) + '"]').html(dom.find('[uniqueid="LiveForm' + parseInt($(SubmitButton).attr("mid")) + '"]').html()); 653 // $.each($(data).find('script'), function (k, v) { 654 // var src = $(v).attr("src"); 655 // if (src != undefined && src.indexOf("DesktopModules/LiveForms") != -1) { 656 // eval(v); 657 // } 658 // }); 659 // }) 660 // evt.preventDefault(); 661 //} 662}
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.