首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

jQuery EasyUI Combobox 火狐中文檢索失效:keydown 改 keyup 即可修復

     編輯:程式設計綜合問答

問題現象

  • EasyUI Combobox 初始化時,火狐瀏覽器無法檢索中文輸入。
  • 手動觸發一次檢索(如點擊下拉框)後,後續檢索恢復正常。
  • Chrome、IE 均正常。

根本原因

EasyUI 內部綁定 keydown 事件觸發檢索邏輯。火狐瀏覽器中,keydown 事件觸發時輸入法編輯器(IME)尚未提交合成文本,導致獲取到的值為空或未完成的拼音,檢索失敗。keyup 時 IME 已提交,可獲取完整中文。

修復方案:修改源碼 keydown → keyup

  1. 打開 jquery.easyui.min.js(或未壓縮版 jquery.easyui.js)。
  2. 搜索 keydown,定位 Combobox 相關綁定代碼(通常在 _bindEvents 或類似函數中)。
  3. 將 keydown 替換為 keyup。

示例代碼片段(修改前後)

// 修改前
$(this).bind('keydown', function(e) { ... });

// 修改後
$(this).bind('keyup', function(e) { ... });

驗證結果

修改後,火狐初始化即可正常檢索中文,無需先手動觸發一次。Chrome/IE/Edge 兼容性無影響。

避坑建議

  • 修改第三方庫源碼後,升級版本會覆蓋修改。建議:
  • 方案 A:Fork 庫維護補丁,構建流程自動應用。
  • 方案 B:項目中二次封裝 Combobox 組件,初始化時手動解綁 keydown 綁定 keyup。
  • 方案 C:升級 EasyUI 至最新版(官方可能已修復)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved