1/** 2 * vmvalidator.js: set country chosen dropdowns to required 3 * 4 * @package VirtueMart 5 * @subpackage Javascript Library 6 * @author Max Milbers 7 * @copyright Copyright (c) 2014-18 VirtueMart Team. All rights reserved. 8 * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL 9 */ 10 11 function setDropdownRequiredByResult(id,prefiks){ 12 //console.log('setDropdownRequiredByResult '+prefiks+id); 13 var results = 0; 14 15 var cField = jQuery('#'+prefiks+id+'_field'); 16 if(typeof cField!=='undefined' && cField.length > 0){ 17 var lField = jQuery('[for="'+prefiks+id+'_field"]'); 18 var chznField = jQuery('#'+prefiks+id+'_field_chzn'); 19 20 if(chznField.length > 0) { 21 // in case of chznFields 22 results = chznField.find('.chzn-results li').length; 23 } else { 24 //native selectboxes 25 results = cField.find('option').length; 26 } 27 28 if(results<2){ 29 cField.removeClass('required'); 30 cField.removeAttr('required'); 31 32 if (typeof lField!=='undefined') { 33 lField.removeClass('invalid'); 34 lField.attr('aria-invalid', 'false'); 35 //console.log('Remove invalid lfield',id); 36 } 37 } else if(cField.attr('aria-required')=='true'){ 38 cField.addClass('required'); 39 cField.attr('required','required'); 40 41 lField.addClass('invalid'); 42 lField.attr('aria-invalid', 'true'); 43 } 44 } 45 } 46 47 function setChznRequired(id,prefiks){ 48 //console.log('setChznRequired ',id); 49 var cField = jQuery('#'+prefiks+id+'_field'); 50 if(typeof cField!=='undefined' && cField.length > 0){ 51 52 var chznField = jQuery('#'+prefiks+id+'_field_chzn'); 53 if(chznField.length > 0) { 54 var aField = chznField.find('a'); 55 var lField = jQuery('[for="'+prefiks+id+'_field"]'); 56 57 if(cField.attr('aria-invalid')=='true'){ 58 //console.log('setChznRequired set invalid'); 59 aField.addClass('invalid'); 60 lField.addClass('invalid'); 61 } else { 62 //console.log('setChznRequired set valid'); 63 aField.removeClass('invalid'); 64 lField.removeClass('invalid'); 65 } 66 } 67 } 68 } 69 70 function myValidator(f, r) { 71 72 var regfields = Virtuemart.regfields; 73 74 var requ = ''; 75 if(r == true){ 76 requ = 'required'; 77 } 78 79 if (typeof regfields !== 'undefined') { 80 for (i = 0; i < regfields.length; i++) { 81 var elem = jQuery('#' + regfields[i] + '_field'); 82 elem.addClass(requ); 83 //elem.attr('class', requ); 84 } 85 } 86 87 setDropdownRequiredByResult('virtuemart_country_id',''); 88 setDropdownRequiredByResult('virtuemart_state_id',''); 89 90 var prefiks = Virtuemart.prefiks; 91 if(prefiks!=''){ 92 setDropdownRequiredByResult('virtuemart_country_id',prefiks); 93 setDropdownRequiredByResult('virtuemart_state_id',prefiks); 94 } 95 96 if (document.formvalidator.isValid(f)) { 97 if (jQuery('#recaptcha_wrapper').is(':hidden') && (r == true)) { 98 jQuery('#recaptcha_wrapper').show(); 99 } else { 100 return true; //sents the form, we dont use js.submit() 101 } 102 } else { 103 setChznRequired('virtuemart_country_id',''); 104 setChznRequired('virtuemart_state_id',''); 105 if(prefiks!=''){ 106 setChznRequired('virtuemart_country_id',prefiks); 107 setChznRequired('virtuemart_state_id',prefiks); 108 } 109 if (jQuery('#recaptcha_wrapper').is(':hidden') && (r == true)) { 110 jQuery('#recaptcha_wrapper').show(); 111 } 112 var msg = Virtuemart.requiredMsg; 113 alert(msg + ' '); 114 } 115 return false; 116 }
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.