jquery easyui 自定义验证为什么请求2次

如题所述

当进入页面初始化datagrid的时候发现向后台发送了两次请求,获取数据的方法执行了两次,但我初始化datagrid的时候并没有定义URL属性,肯定也不会发送请求;往下代码能发送请求的就只有$grid.datagrid("load")这一句,最多也只会发送一次,但事实是两次,这是为什么呢,难道这是easyui的一个BUG吗?经过断点调试与思考,我发现datagrid在初始化的时候,即使不定义URL属性,也会有“处理中,请稍候。。。”这样的加载中效果(持续那么一瞬间),但是肯定没有发送请求的,估计源码中通过setTimeout来实现。问题就出在这里了,就是在setTimeout的过程中,我下面的代码定义了URL属性,setTimeout后发现URL被定义了,所以照样发送了一个请求,然后我load了一次,又重复发送了一个请求。了解了这样的原理后,我通过加入setTimeout解决了这个问题:

window.setTimeout(function(){
$.extend($grid.datagrid("options"),{
url : "ServiceData/getCountYearData.do",//这里定义url
queryParams : { ids:cityid}//根据实际情况定义参数
});
$grid.datagrid("load");
},100);//延迟100毫秒执行

补充解决方法

html代码中利用class声明了datagrid,导致easyUI解析class代码的时候先解析class声明中的datagrid,这样组件就请求了一次url;然后又调用js初始化代码请求一次url。这样导致了重复加载,解决的方法就是只用一种初始化方法来声明easyUI组件以避免重复的提交请求,即删除html中的class声明(class="easyui-datagrid")
http://jyhft.com/jedjj.html
温馨提示:内容为网友见解,仅供参考
无其他回答

jquery easyui里怎么自定义validatebox验证提示信息的样式,提示可以显 ...
你好!修改源文件,可以做到这一点~找到easyui.js中的 tip.css({display:"block",left:box.offset().left+box.outerWidth(),top:box.offset().top});设置为你想要显示的位置即可。---

jquery easyui 非必填的验证,required="false"则validType又不起作用...
if(value=='') return true; \/\/ 为空时不验证 return \/^(13|14|16|17|15|18|19)\\d{9}$\/i.test(value);},message: '手机号码格式不正确'} });这是一个手机号的验证, 你参考一下 :)

求助jquery easyui 如何清除combobox缓存
我用的的是combotree,但是我觉得原理应该是一样的,你说的缓存,我认为只要你页面关闭了缓存就会自动清除的,难道它每次只发一次请求吗?我觉得如果你是用js做的话,将js函数放在 (document).ready(function() { })试试,但是easyui都是以这种方式加载,应该不会有什么问题。

jquery easyui datagrid分页 点击 下一页无效
回答:存储过程里,你计算符合条件的记录的总条数(total)了吗

本人新手,请问各位大神EasyUI怎么取消表单时表单验证
你可以变个思路,比如说你给select的默认值设置成Text:请选择,value设置为-1 你用jquery validate 验证的时候可以使用min,比如说最小值必须为0,即如果不进行选择,则激发button的时候就会验证。我就是这么做的,当然,变通的方式有很多

使用easyui后jquery无法动态删除标签属性怎么办
readonly是dom节点的原有属性吧,不是自定义属性。不能移除。

jquery easyui怎么实现前后台数据的交互
这是ajax请求后台的模板:.ajax({ type: 'post', url: 'url', \/\/ this is the url for backend java program data: {'data_post': data_post}, \/\/ the data you want to post to backend. success: function(result){ alert('success'); }})...

在下刚刚接触jquery easyui,请问各位大神如何从数据库中读取数据动态生...
在onLoadSuccess事件里将接受到的数据放到combox中呢

easyui的combogrid怎么写jquery的required非空验证
easyui自带有validatebox,为什么不用呢?combogrid从combo和grid继承而来,应该有个required属性,设为true呗。('customerName').combogrid({ required:true,...});

bootstrap 和 jQueryEasyUI 哪个做后台管理系统更好一些
bootstrap的前端社区比easyUI更加成熟,资源也比较丰富,使用less或者scss可以自定义一些样式,而且bootstrap有栅格化布局也已经成为主流,是现在大部分网站或者后台系统的开发趋势,而且使用率高,可以在网上找到好多的实例直接使用。十分方便。

相似回答
大家正在搜