再说combobox——onLoadSuccess用法实例

再说combobox——onLoadSuccess用法实例再说 combobox onLoadSucces 用法实例

不知道大家有没有发现,在easyUI的combobox实现级联这篇文章里

在对combobox设置的时候,我写了一个onLoadSuccess函数。

这个函数是在加载完远程数据成功后被触发,大致可以分为下面几种情况:

1、若不在onBeforeLoad中限制,无论用何种方式初始化时必触发一次,因为初始化时onBeforeLoad无论如何也都会触发一次

2、若不在onBeforeLoad中限制,在使用remote方式加载数据时,每次发起请求到成功接收到数据后都会触发一次

我之前写的onLoadSuccess函数是为了在进入修改表单的页面时,当主combobox加载数据并翻译完毕后,触发onLoadSuccess从而来加载并翻译级联combobox中的值。

因为级联的combobox完全是被动的,当新建的时候我们是在onSelect这个函数中触发的,而修改进来就需要依靠onLoadSuccess了。

下面看一下我之前的写法:

 onLoadSuccess:function(){ var value = $(this).combobox('getValue'); if(value != ''){  $('[comboname=city]').combobox('reload', 'test/getCityListByProvince?id=' + $(this).combobox('getValue')); } } 

这里先判断了主combobox中是否有值,若有值就去加载级联combobox中的数据去翻译。

有什么问题吗?



这对于editable:false的下拉选择框来说好像没什么问题,因为value肯定只能是对应的value,而不会是其他乱七八糟的东西

但是如果像前一篇文章一样是实现了combobox的自动提示功能的那似乎就有些问题了。


比如我们在输入关键字时,每输一个关键字,都会触发onLoadSuccess,且此时value也有值,且就是你输入的那个值(但是这里个人感觉combobox的设计有点问题,因为输入的值应该作为text才对,没有select之前,value都应该为空才对)

这样一来,就会多出很多错误的请求,因为级联的那个请求只需要在onSelect的时候触发才对。

那么如何改进呢?增加一个判断条件吧


方案1:if($(this).combobox(‘getValue’) == $(this).combobox(‘getText’)){return}

看似可行,但实际上发现输入速度过快时,两者的值会不一样!原因也没有深究,放弃之

方案2:由于我这里用到的value都是数字,所以可以用正则表达式判断  

if(/^\d+$/.test(value)),这种方案暂时是可行的,但是也不完美,当用户输入数字时也会去触发关键字搜索,所以也得不到什么结果。

方案3:可以利用onBeforeLoad来判断

 onBeforeLoad: function(param){ if(param == null || param.q == null || param.q.replace(/ /g, '') == ''){ var value = $(this).combobox('getValue'); if(value){// 这里可以判断为修改,在这去加载级联combobox中的数据 param.id = value; return true; } return false; } } 

方案2和方案3用哪种其实都可以达到目的~




版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/216645.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午11:24
下一篇 2026年3月18日 上午11:24


相关推荐

  • 51单片机最小系统的检查

    51单片机最小系统的检查以STC89C52为例(洞洞板、蚀刻板都要检查,工厂打板部分步骤可省略)准备:万用表(调至电压档),单片机最小系统(需供电)1.测量单片机供电是否正常51单片机的P20脚为GND,P40脚为VCC,红表笔接VCC,黑表笔接地:如果结果不为5V(2.6V或者其他),考虑是电源的问题。1.1首先检查电源线,红表笔接正极,黑表笔接负极,显示为5V左右,电源线正常。考虑是电路板的问题1.2将电压表调至通断档(红黑表笔短接电压表鸣叫)。首先检查GND连接是否…

    2022年6月23日
    32
  • 问题:Dify接入通义千问报错“Model access denied”如何解决?

    问题:Dify接入通义千问报错“Model access denied”如何解决?

    2026年3月13日
    2
  • Locahost和本地IP地址有什么区别?

    Locahost和本地IP地址有什么区别?Ifyou redoingaloto configuringL basedappsand orjustcuriou you velikelynoti sadifference R

    2026年3月19日
    2
  • 数据库同步工具:ETL使用说明

    数据库同步工具:ETL使用说明1        打开ETL工具2        转换从数据库的表导出数据到另一个数据库的表。前提:两个数据库的表格结构相同2.1      新建转换文件->新建->转换2.2      配置输入2.2.1      拖动表输入到编辑界面输入:需要导出数据的数据库表格。在左侧导航栏里面,找到【输入】->【表输入】,如下图:将【表输入】拖动到编

    2022年6月16日
    148
  • DDNS 通过阿里云API接口实现 DDNS 动态解析

    DDNS 通过阿里云API接口实现 DDNS 动态解析#!/usr/bin/envpython#coding=utf-8fromaliyunsdkcore.clientimportAcsClientfromaliyunsdkcore.requestimportCommonRequest##################################RR=’@’#你休要通过接口修改的解析主机记录值Value=’1…

    2022年5月4日
    64
  • no default or ui configuration_android:windowSoftInputMode

    no default or ui configuration_android:windowSoftInputMode#Error:DefaultinterfacemethodsareonlysupportedstartingwithAndroidN(–min-api24):voidandroidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)解决方案:在你的app的b…

    2025年9月17日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号