easyui中combobox 验证输入的值必须为选项框中的数据

本文介绍了一个关于Combobox控件的输入验证方法,该方法确保只有下拉列表中存在的选项才能被用户选择,避免了用户输入无效值的情况。文章还提供了一段JavaScript代码示例,展示了如何在用户离开控件时检查其输入的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当作为提示框的方式时,combobox必须设置为允许用户输入的模式,但是当用户输入后未选择正确的数据就直接按tab或点击鼠标离开控件会导致用户输入无效的值并且通过验证,为了避免这种情况的发生我们需要对输入的值进行确认,输入不正确就清空用户的输入框以达到提示的效果

上代码:


  1. onHidePanel : function() {  
  2.     var _options = $(this).combobox('options');  
  3.     var _data = $(this).combobox('getData');/* 下拉框所有选项 */  
  4.     var _value = $(this).combobox('getValue');/* 用户输入的值 */  
  5.     var _b = false;/* 标识是否在下拉列表中找到了用户输入的字符 */  
  6.     for (var i = 0; i < _data.length; i++) {  
  7.         if (_data[i][_options.valueField] == _value) {  
  8.             _b=true;  
  9.             break;  
  10.         }  
  11.     }  
  12.     if(!_b){  
  13.         $(this).combobox('setValue''');  
  14.     }  
  15. },  

修改的js文件为\jquery.easyui.js,可以搜索到onHidePanel这个方法,上面是去匹配下拉值,如果我们用下面的代码去实现用显示值去匹配,就会出现选择选项的值会被清空的bug

onHidePanel: function () {
    var _options = $(this).combobox('options');
    var _data = $(this).combobox('getData');/* 下拉框所有选项 */
    var _value = $(this).combobox('getValue');/* 用户输入的值 */
    var _b = false;/* 标识是否在下拉列表中找到了用户输入的字符 */
    for (var i = 0; i < _data.length; i++) {
        if (_data[i][_options.textField] == _value) {
            _b = true;
            break;
        }
    }
    if (!_b) {
        $(this).combobox('setValue', '');
    }


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值