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 case "array": 91 if (value !== undefined && value !== null) { 92 var values = value.split(',').map(function (v) { return v.trim(); }); 93 if (values.indexOf(String(value_id).trim()) !== -1) { 94 rs = true; 95 } 96 } 97 break; 98 case "!array": 99 if (value !== undefined && value !== null) { 100 var values = value.split(',').map(function (v) { return v.trim(); }); 101 if (values.indexOf(String(value_id).trim()) === -1) { 102 rs = true; 103 } 104 } 105 break; 106 case "array_contain": 107 if (value !== undefined && value !== null) { 108 var values = value.split(',').map(function (v) { return v.trim(); }); 109 var value_id_str = String(value_id); 110 $.each(values, function (idx, vl) { 111 if (vl !== "" && value_id_str.includes(vl)) { 112 rs = true; 113 return false; 114 } 115 }); 116 } 117 break; 118 case "!array_contain": 119 if (value !== undefined && value !== null) { 120 var values = value.split(',').map(function (v) { return v.trim(); }); 121 var value_id_str = String(value_id); 122 rs = true; 123 $.each(values, function (idx, vl) { 124 if (vl !== "" && value_id_str.includes(vl)) { 125 rs = false; 126 return false; 127 } 128 }); 129 } 130 break; 131 } 132 return rs; 133 } 134 function elementor_conditional_logic_load(form, event = "") { 135 var datas = $(".conditional_logic_data_js", form).val(); 136 if (datas === undefined || datas == "" || datas == "[]") { 137 return; 138 } 139 datas = jQuery.parseJSON(datas); 140 $.each(datas, function (field_key, field_value) { 141 if (field_key == "elementor-field-type-submit") { 142 var field = $(".elementor-field-type-submit", form); 143 } else { 144 var field = elementor_conditional_logic_get_element_by_id(field_key, form); 145 } 146 147 var display = field_value.display; 148 var trigger = field_value.trigger; 149 var rs = []; 150 $.each(field_value.datas, function (conditional_logic_key, conditional_logic_values) { 151 var value_id = elementor_conditional_logic_get_value_by_id(conditional_logic_values.conditional_logic_id, form); 152 rs.push(elementor_conditional_logic_check_single(value_id, conditional_logic_values.conditional_logic_operator, conditional_logic_values.conditional_logic_value)); 153 }) 154 if (trigger == "ALL") { 155 var check_rs = true; 156 $.each(rs, function (fkey, fvalue) { 157 if (fvalue == false) { 158 check_rs = false; 159 return false; 160 } 161 }) 162 if (display == "show") { 163 if (check_rs == true) { 164 field.removeClass("hidden"); 165 elementor_conditional_logic_fixed_required_show(field, event); 166 } else { 167 field.addClass("hidden"); 168 field.find('input').removeAttr('required'); 169 elementor_conditional_logic_fixed_required_hidden(field); 170 } 171 } else { 172 if (check_rs == true) { 173 field.addClass("hidden"); 174 field.find('input').removeAttr('required'); 175 elementor_conditional_logic_fixed_required_hidden(field); 176 } else { 177 field.removeClass("hidden"); 178 elementor_conditional_logic_fixed_required_show(field, event); 179 } 180 } 181 } else { 182 var check_rs = false; 183 $.each(rs, function (fkey, fvalue) { 184 if (fvalue == true) { 185 check_rs = true; 186 return false; 187 } 188 }) 189 if (display == "show") { 190 if (check_rs == true) { 191 field.removeClass("hidden"); 192 elementor_conditional_logic_fixed_required_show(field, event); 193 } else { 194 field.addClass("hidden"); 195 field.find('input').removeAttr('required'); 196 elementor_conditional_logic_fixed_required_hidden(field); 197 } 198 } else { 199 if (check_rs == true) { 200 field.addClass("hidden"); 201 elementor_conditional_logic_fixed_required_hidden(field); 202 } else { 203 field.removeClass("hidden"); 204 elementor_conditional_logic_fixed_required_show(field, event); 205 } 206 } 207 } 208 }); 209 } 210 function elementor_conditional_logic_fixed_required_show(field, event) { 211 if (field.find(".elementor-field-repeater-data").length > 0) { 212 var fields_repeater = field.find(".elementor-field-required"); 213 fields_repeater.each(function (index) { 214 elementor_conditional_logic_fixed_required_show_repeater($(this), event) 215 }); 216 return; 217 } else { 218 elementor_conditional_logic_fixed_required_show_repeater(field, event) 219 } 220 } 221 function elementor_conditional_logic_fixed_required_show_repeater(field, event) { 222 if (field.hasClass("elementor-field-type-radio")) { 223 var value = field.data("check_required"); 224 if (value == "yes") { 225 field.data("check_required", "no"); 226 field.removeAttr("data-check_required"); 227 field.find("input").last().prop("checked", false); 228 } 229 } 230 else if (field.hasClass("elementor-field-type-date")) { 231 var value = field.find("input").val(); 232 if (value == "1023-01-01") { 233 field.find("input").val(""); 234 } 235 } 236 else if (field.hasClass("elementor-field-type-time")) { 237 var value = field.find("input").val(); 238 if (value == "11:47") { 239 field.find("input").val(""); 240 } 241 } 242 else if (field.hasClass("elementor-field-type-tel")) { 243 var value = field.find("input").val(); 244 if (value == "1234567892") { 245 field.find("input").val(""); 246 } 247 } 248 else if (field.hasClass("elementor-field-type-telephone")) { 249 var value = field.find("input").val(); 250 if (value == "+84372344123") { 251 field.find("input").val(""); 252 } 253 } 254 else if (field.hasClass("elementor-field-type-url")) { 255 var value = field.find("input").val(); 256 if (value == "https://rednumber_dev_check.com") { 257 field.find("input").val(""); 258 } 259 } 260 else if (field.hasClass("elementor-field-type-email")) { 261 var value = field.find("input").val(); 262 if (value == "[email protected]") { 263 field.find("input").val(""); 264 } 265 } 266 else if (field.hasClass("elementor-field-type-number")) { 267 var value = field.find("input").val(); 268 if (value == "29081990") { 269 field.find("input").val(""); 270 } 271 } else if (field.hasClass("elementor-field-type-select")) { 272 var value = field.find("select").data("check_required"); 273 if (value == "yes") { 274 field.find("select").data("check_required", "no"); 275 field.find("select").removeAttr("data-check_required"); 276 field.find("select option:last").removeAttr("selected"); 277 } 278 } 279 else if (field.hasClass("elementor-field-type-textarea")) { 280 var value = field.find(".elementor-field").val(); 281 if (value == "rednumber_dev_check") { 282 field.find(".elementor-field").val(""); 283 } 284 } else if (field.hasClass("elementor-field-type-yee_input_masks")) { 285 var value = field.find(".elementor-field").val(); 286 if (value == "rednumber_dev_check") { 287 field.find(".elementor-field").val(""); 288 field.find(".elementor-field").inputmask(); 289 } 290 } 291 else if (field.hasClass("elementor-field-type-acceptance")) { 292 var last = field.find("input").data("logic-last"); 293 if (!$(event.target).hasClass("elementor-acceptance-field")) { 294 field.find("input").prop("checked", last); 295 } else { 296 if (field.find("input").is(':checked')) { 297 field.find("input").data("logic-last", true); 298 } else { 299 field.find("input").data("logic-last", false); 300 } 301 } 302 } 303 else { 304 var value = field.find("input").val(); 305 if (value == "rednumber_dev_check") { 306 field.find("input").val(""); 307 } 308 } 309 } 310 function elementor_conditional_logic_fixed_required_hidden(field) { 311 if (field.find(".elementor-field-repeater-data").length > 0) { 312 var fields_repeater = field.find(".elementor-field-required"); 313 fields_repeater.each(function (index) { 314 elementor_conditional_logic_fixed_required_hidden_repeater($(this)) 315 }); 316 return; 317 } else { 318 elementor_conditional_logic_fixed_required_hidden_repeater(field) 319 } 320 } 321 function elementor_conditional_logic_fixed_required_hidden_repeater(field) { 322 field.find("input").attr("aria-required"); 323 field.find("input").removeAttr("required"); 324 field.find("select").removeAttr("required"); 325 field.find("textarea").removeAttr("required"); 326 if (field.hasClass("elementor-field-type-radio")) { 327 var value = field.find("input:checked").val(); 328 if (value === undefined) { 329 field.attr("data-check_required", "yes"); 330 field.find("input").last().prop("checked", true); 331 field.find("input").last().attr("data-logic-last", true); 332 } 333 } 334 else if (field.hasClass("elementor-field-type-upload")) { 335 if (field.hasClass("elementor-field-required")) { 336 alert("Conditional logic: Please do not use required in the upload field"); 337 } 338 field.find("input").removeAttr("aria-required"); 339 } 340 else if (field.hasClass("elementor-field-type-html1")) { 341 } 342 else if (field.hasClass("elementor-field-type-date")) { 343 var value = field.find("input").val(); 344 field.find("input").removeAttr("aria-required"); 345 if (value == "") { 346 field.find("input").val("1023-01-01"); 347 } 348 } 349 else if (field.hasClass("elementor-field-type-time")) { 350 var value = field.find("input").val(); 351 field.find("input").removeAttr("aria-required"); 352 if (value == "") { 353 field.find("input").val("11:47"); 354 } 355 } 356 else if (field.hasClass("elementor-field-type-tel")) { 357 var value = field.find("input").val(); 358 field.find("input").removeAttr("aria-required"); 359 if (value == "") { 360 field.find("input").val("1234567892"); 361 } 362 } 363 else if (field.hasClass("elementor-field-type-telephone")) { 364 var value = field.find("input").val(); 365 field.find("input").removeAttr("aria-required"); 366 if (value == "") { 367 field.find("input").val("+84372344123"); 368 } 369 } 370 else if (field.hasClass("elementor-field-type-url")) { 371 var value = field.find("input").val(); 372 field.find("input").removeAttr("aria-required"); 373 if (value == "") { 374 field.find("input").val("https://rednumber_dev_check.com"); 375 } 376 } 377 else if (field.hasClass("elementor-field-type-email")) { 378 var value = field.find("input").val(); 379 field.find("input").removeAttr("aria-required"); 380 if (value == "") { 381 field.find("input").val("[email protected]"); 382 } 383 } 384 else if (field.hasClass("elementor-field-type-number")) { 385 var value = field.find("input").val(); 386 field.find("input").removeAttr("aria-required"); 387 field.find("input").removeAttr("min").removeAttr("max").removeAttr("aria-required"); 388 if (value == "") { 389 field.find("input").val("29081990"); 390 } 391 } 392 else if (field.hasClass("elementor-field-type-textarea")) { 393 var value = field.find("textarea").val(); 394 field.find("textarea").removeAttr("aria-required"); 395 if (value == "") { 396 field.find("textarea").val("rednumber_dev_check"); 397 } 398 } else if (field.hasClass("elementor-field-type-select")) { 399 var value = field.find("select").val(); 400 field.find("select").removeAttr("aria-required"); 401 if (value == "") { 402 field.find("select").attr("data-check_required", "yes"); 403 var myVal = field.find("select option:last").val(); 404 field.find("select").val(myVal); 405 } 406 } else if (field.hasClass("elementor-field-type-acceptance")) { 407 if (field.find("input").is(':checked')) { 408 field.find("input").attr("data-logic-last", true); 409 } else { 410 field.find("input").removeAttr("aria-required"); 411 field.find("input").attr("data-logic-last", false); 412 field.find("input").prop("checked", true); 413 } 414 } else if (field.hasClass("elementor-field-type-yee_input_masks")) { 415 var value = field.find("input").val(); 416 field.find("input").removeAttr("aria-required"); 417 if (value == "") { 418 field.find("input.elementor-field").inputmask("remove"); 419 field.find("input.elementor-field").val("rednumber_dev_check"); 420 field.find("input.yeeaddons_input_maks_check").val("yes") 421 } 422 } 423 else { 424 var value = field.find("input").val(); 425 field.find("input").removeAttr("aria-required"); 426 if (value == "") { 427 field.find("input").val("rednumber_dev_check"); 428 } 429 } 430 } 431 function elementor_conditional_logic_get_value_by_id(id = "", form = "body") { 432 var rs = ""; 433 if ($(".elementor-field-group-" + id, form).hasClass("elementor-field-type-radio")) { 434 if ($(".elementor-field-group-" + id + " input:checked", form).length > 0) { 435 rs = $(".elementor-field-group-" + id + " input:checked", form).val(); 436 } 437 } 438 else if ($(".elementor-field-group-" + id, form).hasClass("elementor-field-type-checkbox")) { 439 var data = []; 440 $(".elementor-field-group-" + id + " input:checked", form).each(function () { 441 data.push($(this).val()); 442 }) 443 rs = data.join(", "); 444 } 445 else if ($(".elementor-field-group-" + id, form).hasClass("elementor-field-type-select")) { 446 rs = $(".elementor-field-group-" + id + " select", form).val(); 447 } else if ($(".elementor-field-group-" + id, form).hasClass("elementor-field-type-textarea")) { 448 rs = $(".elementor-field-group-" + id + " textarea", form).val(); 449 } 450 else if ($(".elementor-field-group-" + id, form).hasClass("elementor-field-type-acceptance")) { 451 if ($(".elementor-field-group-" + id + " input", form).is(':checked')) { 452 rs = "on"; 453 } else { 454 rs = "off"; 455 } 456 } 457 else { 458 rs = $(".elementor-field-group-" + id + " input", form).val(); 459 } 460 if (rs === undefined) { 461 return id; 462 } else { 463 return rs; 464 } 465 } 466 function elementor_conditional_logic_get_element_by_id(id = "", form = "") { 467 if ($('[data-id-repeater="form-field-' + id + '"]', form).length > 0) { 468 if ($('[data-i
468d-repeater="form-field-' + id + '"]', form).length > 0) { 469 return $('[data-id-repeater="form-field-' + id + '"]', form).closest(".elementor-field-group"); 470 } else { 471 return $('[data-id-repeater="form-field-' + id + '-0"]', form).closest(".elementor-field-group"); 472 } 473 } else { 474 if ($("#form-field-" + id, form).length > 0) { 475 return $("#form-field-" + id, form).closest(".elementor-field-group"); 476 } else { 477 return $("#form-field-" + id + "-0", form).closest(".elementor-field-group"); 478 } 479 } 480 } 481 }) 482})(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.