Combobox 下拉列表的清空按鈕點擊後,選中值視覺上消失,但實際 getValue() 仍返回舊值,表單提交時仍攜帶該參數。
EasyUI Combobox 的「清空」實現為 hidePanel() + 置空顯示文本,**未觸發** onChange 事件,**未重置** 內部 value 屬性。
click 事件手動 $('#cc').combobox('clear') + $('#cc').combobox('setValue', '')。$.fn.combobox.methods.clear = function(jq) {
return jq.each(function() {
$(this).combobox('setValue', '').combobox('setText', '');
var opts = $(this).combobox('options');
if (opts.onChange) opts.onChange.call(this, '', $(this).combobox('getValue'));
});
};
然後調用 $('#cc').combobox('clear') 即可真正清空。$('#form').form('disableValidation').form('clear') 並檢查 combobox('getValue') 為空。推薦方案 2,一勞永逸修正組件行為,業務代碼無感知。