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

当作为提示框的方式时,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', '');
    }


猜你喜欢

转载自blog.csdn.net/zhou_xuexi/article/details/73188237