1(function ($) { 2 "use strict"; 3 $(document).ready(function () { 4 jQuery(document).on('elementor/popup/show', () => { 5 $(".elementor-form").each(function (index) { 6 var form = $(this).closest(".elementor-element"); 7 elementor_conditional_logic_load(form); 8 }); 9 }); 10 $(document).on('submit_success', function (event, response) { 11 //Add your code or actions here. 12 if (response.data && response.data.redirect_url_new_tab) { 13 window.open(response.data.redirect_url_new_tab, '_blank'); 14 } 15 //The response will hold the display message from the Form widget. 16 }); 17 window.addEventListener('elementor/frontend/init', () => { 18 $(".elementor-form").each(function (index) { 19 var form = $(this).closest(".elementor-element"); 20 elementor_conditional_logic_load(form); 21 }); 22 }); 23 $("body").on("change", ".elementor-form input,.elementor-form select,.elementor-form textarea", function (e) { 24 var form = $(this).closest(".elementor-element"); 25 elementor_conditional_logic_load(form, event); 26 }) 27 $("input").on("done_load_repeater", function (e, item) { 28 $(".elementor-form").each(function (index) { 29 var form = $(this).closest(".elementor-element"); 30 elementor_conditional_logic_load(form); 31 }); 32 }) 33 function elementor_conditional_logic_check_single(value_id, operator, value) { 34 var rs = false; 35 switch (operator) { 36 case "==": 37 if (value_id == value) { 38 rs = true; 39 } 40 break; 41 case "!=": 42 if (value_id != value) { 43 rs = true; 44 } 45 break; 46 case "e": 47 if (value_id == "") { 48 rs = true; 49 } 50 break; 51 case "!e": 52 if (value_id != "") { 53 rs = true; 54 } 55 break; 56 case "c": 57 if (value_id.includes(value)) { 58 rs = true; 59 } 60 break; 61 case "!c": 62 if (!value_id.includes(value)) { 63 rs = true; 64 } 65 break; 66 case "^": 67 if (value_id.startsWith(value)) { 68 rs = true; 69 } 70 break; 71 case "~": 72 if (value_id.endsWith(value)) { 73 rs = true; 74 } 75 break; 76 case ">": 77 value_id = parseFloat(value_id); 78 value = parseFloat(value); 79 if (value_id > value) { 80 rs = true; 81 } 82 break; 83 case "<": 84 value_id = parseFloat(value_id); 85 value = parseFloat(value); 86 if (value_id < value) { 87 rs = true; 88 } 89 break; 90 } 91 return rs; 92 } 93 function elementor_conditional_logic_load(form, event = "") { 94 var datas = $(".conditional_logic_data_js", form).val(); 95 if (datas === undefined || datas == "" || datas == "[]") { 96 return; 97 } 98 datas = jQuery.parseJSON(datas); 99 $.each(datas, function (field_key, field_value) { 100 if (field_key == "elementor-field-type-submit") { 101 var field = $(".elementor-field-type-submit", form); 102 } else { 103 var field = elementor_conditional_logic_get_element_by_id(field_key, form); 104 } 105 106 var display = field_value.display; 107 var trigger = field_value.trigger; 108 var rs = []; 109 $.each(field_value.datas, function (conditional_logic_key, conditional_logic_values) { 110 var value_id = elementor_conditional_logic_get_value_by_id(conditional_logic_values.conditional_logic_id, form); 111 rs.push(elementor_conditional_logic_check_single(value_id, conditional_logic_values.conditional_logic_operator, conditional_logic_values.conditional_logic_value)); 112 }) 113 if (trigger == "ALL") { 114 var check_rs = true; 115 $.each(rs, function (fkey, fvalue) { 116 if (fvalue == false) { 117 check_rs = false; 118 return false; 119 } 120 }) 121 if (display == "show") { 122 if (check_rs == true) { 123 field.removeClass("hidden"); 124 elementor_conditional_logic_fixed_required_show(field, event); 125 } else { 126 field.addClass("hidden"); 127 field.find('input').removeAttr('required'); 128 elementor_conditional_logic_fixed_required_hidden(field); 129 } 130 } else { 131 if (check_rs == true) { 132 field.addClass("hidden"); 133 field.find('input').removeAttr('required'); 134 elementor_conditional_logic_fixed_required_hidden(field); 135 } else { 136 field.removeClass("hidden"); 137 elementor_conditional_logic_fixed_required_show(field, event); 138 } 139 } 140 } else { 141 var check_rs = false; 142 $.each(rs, function (fkey, fvalue) { 143 if (fvalue == true) { 144 check_rs = true; 145 return false; 146 } 147 }) 148 if (display == "show") { 149 if (check_rs == true) { 150 field.removeClass("hidden"); 151 elementor_conditional_logic_fixed_required_show(field, event); 152 } else { 153 field.addClass("hidden"); 154 field.find('input').removeAttr('required'); 155 elementor_conditional_logic_fixed_required_hidden(field); 156 } 157 } else { 158 if (check_rs == true) { 159 field.addClass("hidden"); 160 elementor_conditional_logic_fixed_required_hidden(field); 161 } else { 162 field.removeClass("hidden"); 163 elementor_conditional_logic_fixed_required_show(field, event); 164 } 165 } 166 } 167 }); 168 } 169 function elementor_conditional_logic_fixed_required_show(field, event) { 170 if (field.find(".elementor-field-repeater-data").length > 0) { 171 var fields_repeater = field.find(".elementor-field-required"); 172 fields_repeater.each(function (index) { 173 elementor_conditional_logic_fixed_required_show_repeater($(this), event) 174 }); 175 return; 176 } else { 177 elementor_conditional_logic_fixed_required_show_repeater(field, event) 178 } 179 } 180 function elementor_conditional_logic_fixed_required_show_repeater(field, event) { 181 if (field.hasClass("elementor-field-type-radio")) { 182 var value = field.data("check_required"); 183 if (value == "yes") { 184 field.data("check_required", "no"); 185 field.removeAttr("data-check_required"); 186 field.find("input").last().prop("checked", false); 187 } 188 } 189 else if (field.hasClass("elementor-field-type-date")) { 190 var value = field.find("input").val(); 191 if (value == "1023-01-01") { 192 field.find("input").val(""); 193 } 194 } 195 else if (field.hasClass("elementor-field-type-time")) { 196 var value = field.find("input").val(); 197 if (value == "11:47") { 198 field.find("input").val(""); 199 } 200 } 201 else if (field.hasClass("elementor-field-type-tel")) { 202 var value = field.find("input").val(); 203 if (value == "1234567892") { 204 field.find("input").val(""); 205 } 206 } 207 else if (field.hasClass("elementor-field-type-telephone")) { 208 var value = field.find("input").val(); 209 if (value == "+84372344123") { 210 field.find("input").val(""); 211 } 212 } 213 else if (field.hasClass("elementor-field-type-url")) { 214 var value = field.find("input").val(); 215 if (value == "https://rednumber_dev_check.com") { 216 field.find("input").val(""); 217 } 218 } 219 else if (field.hasClass("elementor-field-type-email")) { 220 var value = field.find("input").val(); 221 if (value == "[email protected]") { 222 field.find("input").val(""); 223 } 224 } 225 else if (field.hasClass("elementor-field-type-number")) { 226 var value = field.find("input").val(); 227 if (value == "29081990") { 228 field.find("input").val(""); 229 } 230 } else if (field.hasClass("elementor-field-type-select")) { 231 var value = field.find("select").data("check_required"); 232 if (value == "yes") { 233 field.find("select").data("check_required", "no"); 234 field.find("select").removeAttr("data-check_required"); 235 field.find("select option:last").removeAttr("selected"); 236 } 237 } 238 else if (field.hasClass("elementor-field-type-textarea")) { 239 var value = field.find(".elementor-field").val(); 240 if (value == "rednumber_dev_check") { 241 field.find(".elementor-field").val(""); 242 } 243 } else if (field.hasClass("elementor-field-type-yee_input_masks")) { 244 var value = field.find(".elementor-field").val(); 245 if (value == "rednumber_dev_check") { 246 field.find(".elementor-field").val(""); 247 field.find(".elementor-field").inputmask(); 248 } 249 } 250 else if (field.hasClass("elementor-field-type-acceptance")) { 251 var last = field.find("input").data("logic-last"); 252 if (!$(event.target).hasClass("elementor-acceptance-field")) { 253 field.find("input").prop("checked", last); 254 } else { 255 if (field.find("input").is(':checked')) { 256 field.find("input").data("logic-last", true); 257 } else { 258 field.find("input").data("logic-last", false); 259 } 260 } 261 } 262 else { 263 var value = field.find("input").val(); 264 if (value == "rednumber_dev_check") { 265 field.find("input").val(""); 266 } 267 } 268 } 269 function elementor_conditional_logic_fixed_required_hidden(field) { 270 if (field.find(".elementor-field-repeater-data").length > 0) { 271 var fields_repeater = field.find(".elementor-field-required"); 272 fields_repeater.each(function (index) { 273 elementor_conditional_logic_fixed_required_hidden_repeater($(this)) 274 }); 275 return; 276 } else { 277 elementor_conditional_logic_fixed_required_hidden_repeater(field) 278 } 279 } 280 function elementor_conditional_logic_fixed_required_hidden_repeater(field) { 281 field.find("input").attr("aria-required"); 282 field.find("input").removeAttr("required"); 283 field.find("select").removeAttr("required"); 284 field.find("textarea").removeAttr("required"); 285 if (field.hasClass("elementor-field-type-radio")) { 286 var value = field.find("input:checked").val(); 287 if (value === undefined) { 288 field.attr("data-check_required", "yes"); 289 field.find("input").last().prop("checked", true); 290 field.find("input").last().attr("data-logic-last", true); 291 } 292 } 293 else if (field.hasClass("elementor-field-type-upload")) { 294 if (field.hasClass("elementor-field-required")) { 295 alert("Conditional logic: Please do not use required in the upload field"); 296 } 297 field.find("input").removeAttr("aria-required"); 298 } 299 else if (field.hasClass("elementor-field-type-html1")) { 300 } 301 else if (field.hasClass("elementor-field-type-date")) { 302 var value = field.find("input").val(); 303 field.find("input").removeAttr("aria-required"); 304 if (value == "") { 305 field.find("input").val("1023-01-01"); 306 } 307 } 308 else if (field.hasClass("elementor-field-type-time")) { 309 var value = field.find("input").val(); 310 field.find("input").removeAttr("aria-required"); 311 if (value == "") { 312 field.find("input").val("11:47"); 313 } 314 } 315 else if (field.hasClass("elementor-field-type-tel")) { 316 var value = field.find("input").val(); 317 field.find("input").removeAttr("aria-required"); 318 if (value == "") { 319 field.find("input").val("1234567892"); 320 } 321 } 322 else if (field.hasClass("elementor-field-type-telephone")) { 323 var value = field.find("input").val(); 324 field.find("input").removeAttr("aria-required"); 325 if (value == "") { 326 field.find("input").val("+84372344123"); 327 } 328 } 329 else if (field.hasClass("elementor-field-type-url")) { 330 var value = field.find("input").val(); 331 field.find("input").removeAttr("aria-required"); 332 if (value == "") { 333 field.find("input").val("https://rednumber_dev_check.com"); 334 } 335 } 336 else if (field.hasClass("elementor-field-type-email")) { 337 var value = field.find("input").val(); 338 field.find("input").removeAttr("aria-required"); 339 if (value == "") { 340 field.find("input").val("[email protected]"); 341 } 342 } 343 else if (field.hasClass("elementor-field-type-number")) { 344 var value = field.find("input").val(); 345 field.find("input").removeAttr("aria-required"); 346 field.find("input").removeAttr("min").removeAttr("max").removeAttr("aria-required"); 347 if (value == "") { 348 field.find("input").val("29081990"); 349 } 350 } 351 else if (field.hasClass("elementor-field-type-textarea")) { 352 var value = field.find("textarea").val(); 353 field.find("textarea").removeAttr("aria-required"); 354 if (value == "") { 355 field.find("textarea").val("rednumber_dev_check"); 356 } 357 } else if (field.hasClass("elementor-field-type-select")) { 358 var value = field.find("select").val(); 359 field.find("select").removeAttr("aria-required"); 360 if (value == "") { 361 field.find("select").attr("data-check_required", "yes"); 362 var myVal = field.find("select option:last").val(); 363 field.find("select").val(myVal); 364 } 365 } else if (field.hasClass("elementor-field-type-acceptance")) { 366 if (field.find("input").is(':checked')) { 367 field.find("input").attr("data-logic-last", true); 368 } else { 369 field.find("input").removeAttr("aria-required"); 370 field.find("input").attr("data-logic-last", false); 371 field.find("input").prop("checked", true); 372 } 373 } else if (field.hasClass("elementor-field-type-yee_input_masks")) { 374 var value = field.find("input").val(); 375 field.find("input").removeAttr("aria-required"); 376 if (value == "") { 377 field.find("input.elementor-field").inputmask("remove"); 378 field.find("input.elementor-field").val("rednumber_dev_check"); 379 field.find("input.yeeaddons_input_maks_check").val("yes") 380 } 381 } 382 else { 383 var value = field.find("input").val(); 384 field.find("input").removeAttr("aria-required"); 385 if (value == "") { 386 field.find("input").val("rednumber_dev_check"); 387 } 388 } 389 } 390 function elementor_conditional_logic_get_value_by_id(id = "", form = "body") { 391 var rs = ""; 392 if ($(".elementor-field-group-" + id, form).hasClass("elementor-field-type-radio")) { 393 if ($(".elementor-field-group-" + id + " input:checked", form).length > 0) { 394 rs = $(".elementor-field-group-" + id + " input:checked", form).val(); 395 } 396 } 397 else if ($(".elementor-field-group-" + id, form).hasClass("elementor-field-type-checkbox")) { 398 var data = []; 399 $(".elementor-field-group-" + id + " input:checked", form).each(function () { 400 data.push($(this).val()); 401 }) 402 rs = data.join(", "); 403 } 404 else if ($(".elementor-field-group-" + id, form).hasClass("elementor-field-type-select")) { 405 rs = $(".elementor-field-group-" + id + " select", form).val(); 406 } else if ($(".elementor-field-group-" + id, form).hasClass("elementor-field-type-textarea")) { 407 rs = $(".elementor-field-group-" + id + " textarea", form).val(); 408 } 409 else if ($(".elementor-field-group-" + id, form).hasClass("elementor-field-type-acceptance")) { 410 if ($(".elementor-field-group-" + id + " input", form).is(':checked')) { 411 rs = "on"; 412 } else { 413 rs = "off"; 414 } 415 } 416 else { 417 rs = $(".elementor-field-group-" + id + " input", form).val(); 418 } 419 if (rs === undefined) { 420 return id; 421 } else { 422 return rs; 423 } 424 } 425 function elementor_conditional_logic_get_element_by_id(id = "", form = "") { 426 if ($('[data-id-repeater="form-field-' + id + '"]', form).length > 0) { 427 if ($('[data-id-repeater="form-field-' + id + '"]', form).length > 0) { 428 return $('[data-id-repeater="form-field-' + id + '"]', form).closest(".elementor-field-group"); 429 } else { 430 return $('[data-id-repeater="form-field-' + id + '-0"]', form).closest(".elementor-field-group"); 431 } 432 } else { 433 if ($("#form-field-" + id, form).length > 0) { 434 return $("#form-field-" + id, form).closest(".elementor-field-group"); 435 } else { 436 return $("#form-field-" + id + "-0", form).closest(".elementor-field-group"); 437 } 438 } 439 } 440 }) 441})(jQuery);
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.