PluginProbe
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder / 2.9.1
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder v2.9.1
V-3.3.0 3.2.2 3.2.1 3.2.0 3.1.4 3.1.3 3.1.2 3.1.1 3.1.0 V3.0.3 V3.0.2 -3.0.1 V_3.0.0 1.1.1 1.1.8 1.2 1.3 1.4 1.4.18 1.5.2 1.9 2.0 2.10.0 2.10.1 2.10.2 All 137 releases
bit-form / includes / Admin / Form / ExtraFieldJS / CheckDisableOnMax.php

CheckDisableOnMax.php in Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder 2.9.1, at includes/Admin/Form/ExtraFieldJS/CheckDisableOnMax.php

43 lines 1.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace BitCode\BitForm\Admin\Form\ExtraFieldJS;
4
5 class CheckDisableOnMax
6 {
7 public static function init($fk, $field, $contentId)
8 {
9 return <<<FUNCTIONDEF
10 function initCheckDisableOnMax(formContentId = null) {
11 const contentIds = formContentId ? [formContentId] : Object.keys(bf_globals);
12 contentIds.forEach(contentId => {
13 const frm = bfSelect("#form-"+contentId);
14 const {fields} = bf_globals[contentId];
15 const checkFlds = Object.keys(fields).filter(fld => ['check', 'image-select'].includes(fields[fld].typ));
16 checkFlds.forEach(fk => {
17 frm.querySelectorAll("."+fk+"-inp-wrp input[type='checkbox']").forEach(function(el){
18 el.addEventListener("change",function(e){
19 const max = Number(fields[fk].mx);
20 const checked = frm.querySelectorAll("."+fk+"-inp-wrp input[type='checkbox']:checked").length;
21 if(checked >= max){
22 frm.querySelectorAll("."+fk+"-inp-wrp input[type='checkbox']").forEach(function(el){
23 if(!el.checked){
24 el.setAttribute("disabled",true);
25 }
26 });
27 }else{
28 const options = fields[fk].opt;
29 frm.querySelectorAll("."+fk+"-inp-wrp input[type='checkbox']").forEach(function(el, index){
30 if(!options[index]?.disabled){
31 el.removeAttribute("disabled");
32 }
33 });
34 }
35 });
36 });
37 })
38 })
39 }
40 FUNCTIONDEF;
41 }
42 }
43