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