EasyUI
Home
Demo
Tutorial
Documentation
Download
Extension
Contact
Forum
EasyUI Forum
May 17, 2024, 07:45:17 AM
Welcome,
Guest
. Please
login
or
register
.
1 Hour
1 Day
1 Week
1 Month
Forever
Login with username, password and session length
News
:
Home
Help
Search
Login
Register
EasyUI Forum
>
General Category
>
EasyUI for jQuery
>
在 combo 的 doQuery 里, 能否不触发 onChange 事件?
Pages: [
1
]
« previous
next »
Print
Author
Topic: 在 combo 的 doQuery 里, 能否不触发 onChange 事件? (Read 8508 times)
iamjxc
Jr. Member
Posts: 80
在 combo 的 doQuery 里, 能否不触发 onChange 事件?
«
on:
April 23, 2014, 02:08:43 AM »
我想在combo 控件的 onChange 里写如下代码:
function onComboChange(value, oldValue){
// 触发原控件的 change 事件
var el = $(this);
el.trigger("change", value);
}
但是发现 doQuery 拼音检索, 执行 filter 时, 会不断触发 onChange 事件
我看 setValues 有第3个参数 remainText, 能否在 remainText==true 时不触发 onChange 事件?
需要修改 combo 的 setValues 方法, 增加 remainText 参数, 然后把 combobox 的 remainText 参数传递过去
在 combo 的 setValues 方法里判断 remainText , 就不调用 onChange
建议把 remainText 参数公开, 有的情况下用起来挺方便的.
«
Last Edit: April 23, 2014, 02:14:53 AM by iamjxc
»
Logged
iamjxc
Jr. Member
Posts: 80
Re: 在 combo 的 doQuery 里, 能否不触发 onChange 事件?
«
Reply #1 on:
April 23, 2014, 10:35:03 PM »
看来 stworthy 还没空解决这个问题, 我的变通方案是在 onChange 里过滤多余的调用.
function onComboChange(value, oldValue){
var el = $(this);
var text = el.combo("getText");
if (checkTextInCombo(el, text)) {
el.trigger("change", value);
}else{
// 处理拼音检索后, 用鼠标点选的情况
if (text == oldValue && text != value){
el.trigger("change", value);
}
}
}
function checkTextInCombo(el, text){
// 清空数据的情况, 也触发
if (text == "") return true;
var datas = null;
var opt = el.combo("options");
if (opt.type == "combobox"){
datas = el.combobox("getData");
}else if (opt.type == "combogrid"){
var grid = el.combogrid("grid"); // get datagrid object
datas = grid.datagrid("getRows");
}else if (opt.type == "combotree"){
// 没有拼音检索的情况可以直接确认
return true;
}
// 校验 text 是否在数据里
for(var i=0,len=datas.length;i<len;i++){
var data = datas
;
if (data[opt.textField] == text){
return true;
}
}
return false;
}
Logged
Pages: [
1
]
Print
« previous
next »
Jump to:
Please select a destination:
-----------------------------
General Category
-----------------------------
=> News
=> General Discussion
=> EasyUI for jQuery
=> EasyUI for Angular
=> EasyUI for Vue
=> EasyUI for React
=> Bug Report
Loading...