EasyUI combogrid/combobox过滤时限制只能选择现有项

本文介绍了一种使用 EasyUI 的 Combogrid 控件进行值校验的方法。通过监听 Combogrid 的 onHidePanel 事件,确保用户只能从下拉列表中选择值而不能直接输入。此外,还提供了一个示例来展示如何实现这一功能。

var valChanged=false;
var selectRow=null;
//q_Item加载项目
function fillqItemCombogrid(qitemobj,unit,year,itemname)
{

qitemobj.combogrid({
onChange: function (newValue, oldValue) {

valChanged = true;//记录是否有改变(当手动输入时发生)
},
onHidePanel: function () {
var t = $(this).combogrid('getValue');
if (valChanged) {
if (selectRow == null || t != selectRow.id) {//没有选择或者选项不相等时清除内容
if(!(typeof(t) == "undefined")&&t!="")
{
$.messager.alert('提示','请选择,不要直接输入');
}
$(this).combogrid('setValue', '');

} else {
//do something...
}
}
valChanged = false;
selectRow = null;
},
onSelect: function (index, row) {
selectRow = row;
},


 上面方式在赋值时判断不了,下面方式

$('#areaGuid').combogrid({
       panelWidth: 300,
       idField: 'guid',
       textField: 'name',
       mode: 'remote',
       method: 'post',
       fitColumns: true,
       url: dourl + 'refreshArea.do',
       onHidePanel: function () {
           var _temp_SelectRow = $(this).combogrid("grid").datagrid('getSelected');
           var _var_Combgrid_SelectValue = $(this).combogrid('getValue');
           if (!_temp_SelectRow || _var_Combgrid_SelectValue != _temp_SelectRow.guid) {//没有选择或者选项不相等时清除内容
               $(this).combogrid('setValue', '');
           }
       },
       onShowPanel: function () {
           $(this).combogrid("grid").datagrid("reload", {q: ''});
       },
       columns: [[
           {field: 'code', title: 'Code', width: 60},
           {field: 'name', title: 'Name', width: 100}
       ]]
   });

 

转载于:https://www.cnblogs.com/zhaogaojian/p/8051502.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值