浏览代码

解决 联动后原 select2 config 丢失问题

解决 联动后原 select2 config 丢失问题,并默认在联动前置条件变化后,清空后置 options。
卜木 4 年之前
父节点
当前提交
08df386b1b
共有 1 个文件被更改,包括 7 次插入9 次删除
  1. 7 9
      resources/views/scripts/select.blade.php

+ 7 - 9
resources/views/scripts/select.blade.php

@@ -44,19 +44,17 @@
         $(document).off('change', selector);
         $(document).on('change', selector, function () {
             var target = $(this).closest('{{ $load['group'] ?? '.fields-group' }}').find(".{{ $load['class'] }}");
+            target.find("option").remove();
 
             if (String(this.value) !== '0' && ! this.value) {
                 return;
             }
             $.ajax("{!! $load['url'].(strpos($load['url'],'?')?'&':'?') !!}q="+this.value).then(function (data) {
-                target.find("option").remove();
-                $(target).select2({
-                    data: $.map(data, function (d) {
-                        d.id = d.{{ $load['idField'] }};
-                        d.text = d.{{ $load['textField'] }};
-                        return d;
-                    })
-                }).val(target.attr('data-value').split(',')).trigger('change');
+                $.map(data, function (d) {
+                    var newOption = new Option(d.{{ $load['textField'] }}, d.{{ $load['idField'] }}, false, false);
+                    target.append(newOption);
+                });
+                target.val(target.attr('data-value').split(',')).trigger('change');
             });
         });
         $(selector).trigger('change');
@@ -97,4 +95,4 @@
         }
     </script>
 @endif
-@overwrite
+@overwrite