Przeglądaj źródła

修复表格快捷搜索捕捉中文输入异常问题

jqh 5 lat temu
rodzic
commit
4d96c46735

+ 1 - 5
resources/assets/dcat-admin/main.css

@@ -2312,13 +2312,9 @@ div.layui-layer-btn{
 }
 
 .grid-column-header a {
-    color: #9ab1c3 !important;
+    color: #8aa5b9 !important;
     font-size: 13px;
 }
-/*.grid-column-header a:hover {*/
-/*    color:#7c858e!important;*/
-/*    color: var(--80)!important;*/
-/*}*/
 
 .grid-column-header a.active, .grid-column-header a:hover {
     color:#297ec0!important;

Plik diff jest za duży
+ 0 - 0
resources/assets/dcat-admin/main.min.css


+ 28 - 14
src/Grid/Tools/QuickSearch.php

@@ -117,27 +117,41 @@ class QuickSearch extends AbstractTool
     {
         $script = <<<'JS'
 (function () {
-    var toggleClearBtn = function () {
+    var inputting = false,
+        $ipt = $('input.quick-search-input'), 
+        val = $ipt.val(),
+        ignoreKeys = [16, 17, 18, 20, 35, 36, 37, 38, 39, 40, 45, 144];
+    
+    var submit = LA.debounce(function (input) {
+        inputting || $(input).parents('form').submit()
+    }, 600);
+    
+    function toggleBtn() {
         var t = $(this),
-            clear = t.parent().find('.quick-search-clear');
+            btn = t.parent().find('.quick-search-clear');
     
         if (t.val()) {
-            clear.css({color: '#333'});
+            btn.css({color: '#333'});
         } else {
-            clear.css({color: '#fff'});
+            btn.css({color: '#fff'});
         }
         return false;
-    };
-    
-    var submit = LA.debounce(function (input) {
-        $(input).parents('form').submit()
-    }, 500);
+    }
     
-    var $ipt = $('input.quick-search-input'), val = $ipt.val();
-    $ipt.on('focus', toggleClearBtn).on('keyup', function () {
-        toggleClearBtn.apply(this);
-        submit(this);
-    }).on('mousemove', toggleClearBtn).on('mouseout', toggleClearBtn);
+    $ipt.on('focus', toggleBtn)
+        .on('keyup', function (e) {
+            toggleBtn.apply(this);
+            
+            ignoreKeys.indexOf(e.keyCode) == -1 && submit(this)
+        })
+        .on('mousemove', toggleBtn)
+        .on('mouseout', toggleBtn)
+        .on('compositionstart', function(){
+            inputting = true
+        })
+        .on('compositionend', function() {
+            inputting = false
+        });
     val !== '' && $ipt.val('').focus().val(val).focus();
     
     $('.quick-search-clear').click(function () {

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików