- 浏览: 1132725 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (411)
- Java Foundation (41)
- AI/机器学习/数据挖掘/模式识别/自然语言处理/信息检索 (2)
- 云计算/NoSQL/数据分析 (11)
- Linux (13)
- Open Source (12)
- J2EE (52)
- Data Structures (4)
- other (10)
- Dev Error (41)
- Ajax/JS/JSP/HTML5 (47)
- Oracle (68)
- FLEX (19)
- Tools (19)
- 设计模式 (4)
- Database (12)
- SQL Server (9)
- 例子程序 (4)
- mysql (2)
- Web Services (4)
- 面试 (8)
- 嵌入式/移动开发 (18)
- 软件工程/UML (15)
- C/C++ (7)
- 架构Architecture/分布式Distributed (1)
最新评论
-
a535114641:
LZ你好, 用了这个方法后子页面里的JS方法就全不能用了呀
页面局部刷新的两种方式:form+iframe 和 ajax -
di1984HIT:
学习了,真不错,做个记号啊
Machine Learning -
赵师傅临死前:
我一台老机器,myeclipse9 + FB3.5 可以正常使 ...
myeclipse 10 安装 flash builder 4.6 -
Wu_Jiang:
触发时间在将来的某个时间 但是第一次触发的时间超出了失效时间, ...
Based on configured schedule, the given trigger will never fire. -
cylove007:
找了好久,顶你
Editable Select 可编辑select
How to perform function after Jquery (window).load is complete:
http://stackoverflow.com/questions/5416209/how-to-perform-function-after-jquery-window-load-is-complete
关于$(document).ready 和 $(window).load 的区别:
http://wuaner.iteye.com/admin/blogs/319769
下列代码会报该js错误:
经研究发现,是页面dom元素加载顺序导致的该问题。解决办法两个:
一 将遍历select元素并对其做操作的出错代码 $('select').each()放至$("#templateForm").validate()之后(即$(document).ready()的最后面):
二 将将遍历select元素并对其做操作的出错代码从$(document).ready()中抽出来,放到$(document).ready()下面的$(window).load()中:
http://stackoverflow.com/questions/5416209/how-to-perform-function-after-jquery-window-load-is-complete
引用
$(window).load( function() { //do something });
关于$(document).ready 和 $(window).load 的区别:
http://wuaner.iteye.com/admin/blogs/319769
下列代码会报该js错误:
$(document).ready(function() { $.validator.methods.atLeastOneChannel = function(value, element, param) { var n = 0; $("select").each(function (i) { if (this.id == "fidsDispTempdataList.channelid" && this.value != "") { ///alert(this.id + " " + this.value); n+=1; } }); return n >= 1; }; $.validator.addClassRules("intClass", { digits:true }); $("select").change(function () { if($(this).attr("id") == "fidsDispTempdataList.channelid") { ///alert($(this).val()); var curStartNumNode = $(this).parent().next().next().children().get(0); //var curPerPageNumNode = $(this).parent().next().next().next().next().children().get(0); //var curPagesNode = $(this).parent().next().next().next().next().next().next().children().get(0); var curPagesNode = $(this).parent().next().next().next().next().children().get(0); if($(this).val() == "") { $(curStartNumNode).rules("remove"); //$(curPerPageNumNode).rules("remove"); $(curPagesNode).rules("remove"); } else { $(curStartNumNode).rules("add", {required: true}); //$(curPerPageNumNode).rules("add", {required: true}); $(curPagesNode).rules("add", {required: true}); } } }); //在遍历页面select时出的错 $('select').each( function(){ if($(this).attr("id")=="fidsDispTempdataList.channelid" && $(this).val()!="") { ///alert($(this).val()); var curStartNumNode = $(this).parent().next().next().children().get(0); //var curPerPageNumNode = $(this).parent().next().next().next().next().children().get(0); //var curPagesNode = $(this).parent().next().next().next().next().next().next().children().get(0); var curPagesNode = $(this).parent().next().next().next().next().children().get(0); try { $(curStartNumNode).rules("add", {required: true}); $(curPagesNode).rules("add", {required: true}); } catch( error ) { alert(error.message); } } }); $("#templateForm").validate({ rules: { "fidsDispTemplate.code": { required: true }, "fidsDispTemplate.name": { required: true }, "fidsDispTemplate.mainPage": { required: true }, "channelSpan" : { atLeastOneChannel : true } }, messages: { "fidsDispTemplate.code": { required: "<s:text name='template.validation.code.required'/>" }, "fidsDispTemplate.name": { required: "<s:text name='template.validation.name.required'/>" }, "fidsDispTemplate.mainPage": { required: "<s:text name='template.validation.mainPage.required'/>" }, "channelSpan" : { atLeastOneChannel : "<s:text name='template.validation.atLeastOneChannel'/>" } }, errorPlacement: function(error, element) { ///alert(element.attr("className")); if (element.attr("className") == "intClass error") { ///error.insertBefore(element); return true; } else { error.insertAfter(element); } } }); });
经研究发现,是页面dom元素加载顺序导致的该问题。解决办法两个:
一 将遍历select元素并对其做操作的出错代码 $('select').each()放至$("#templateForm").validate()之后(即$(document).ready()的最后面):
$(document).ready(function() { $.validator.methods.atLeastOneChannel = function(value, element, param) { var n = 0; $("select").each(function (i) { if (this.id == "fidsDispTempdataList.channelid" && this.value != "") { ///alert(this.id + " " + this.value); n+=1; } }); return n >= 1; }; $.validator.addClassRules("intClass", { digits:true }); $("select").change(function () { if($(this).attr("id") == "fidsDispTempdataList.channelid") { ///alert($(this).val()); var curStartNumNode = $(this).parent().next().next().children().get(0); //var curPerPageNumNode = $(this).parent().next().next().next().next().children().get(0); //var curPagesNode = $(this).parent().next().next().next().next().next().next().children().get(0); var curPagesNode = $(this).parent().next().next().next().next().children().get(0); if($(this).val() == "") { $(curStartNumNode).rules("remove"); //$(curPerPageNumNode).rules("remove"); $(curPagesNode).rules("remove"); } else { $(curStartNumNode).rules("add", {required: true}); //$(curPerPageNumNode).rules("add", {required: true}); $(curPagesNode).rules("add", {required: true}); } } }); $("#templateForm").validate({ rules: { "fidsDispTemplate.code": { required: true }, "fidsDispTemplate.name": { required: true }, "fidsDispTemplate.mainPage": { required: true }, "channelSpan" : { atLeastOneChannel : true } }, messages: { "fidsDispTemplate.code": { required: "<s:text name='template.validation.code.required'/>" }, "fidsDispTemplate.name": { required: "<s:text name='template.validation.name.required'/>" }, "fidsDispTemplate.mainPage": { required: "<s:text name='template.validation.mainPage.required'/>" }, "channelSpan" : { atLeastOneChannel : "<s:text name='template.validation.atLeastOneChannel'/>" } }, errorPlacement: function(error, element) { ///alert(element.attr("className")); if (element.attr("className") == "intClass error") { ///error.insertBefore(element); return true; } else { error.insertAfter(element); } } }); //将该段遍历页面select的出错代码移至ready()方法的最后,错误不再出现 $('select').each( function(){ if($(this).attr("id")=="fidsDispTempdataList.channelid" && $(this).val()!="") { ///alert($(this).val()); var curStartNumNode = $(this).parent().next().next().children().get(0); //var curPerPageNumNode = $(this).parent().next().next().next().next().children().get(0); //var curPagesNode = $(this).parent().next().next().next().next().next().next().children().get(0); var curPagesNode = $(this).parent().next().next().next().next().children().get(0); try { $(curStartNumNode).rules("add", {required: true}); $(curPagesNode).rules("add", {required: true}); } catch( error ) { alert(error.message); } } }); });
二 将将遍历select元素并对其做操作的出错代码从$(document).ready()中抽出来,放到$(document).ready()下面的$(window).load()中:
$(document).ready(function() { $.validator.methods.atLeastOneChannel = function(value, element, param) { var n = 0; $("select").each(function (i) { if (this.id == "fidsDispTempdataList.channelid" && this.value != "") { ///alert(this.id + " " + this.value); n+=1; } }); return n >= 1; }; $.validator.addClassRules("intClass", { digits:true }); $("select").change(function () { if($(this).attr("id") == "fidsDispTempdataList.channelid") { ///alert($(this).val()); var curStartNumNode = $(this).parent().next().next().children().get(0); //var curPerPageNumNode = $(this).parent().next().next().next().next().children().get(0); //var curPagesNode = $(this).parent().next().next().next().next().next().next().children().get(0); var curPagesNode = $(this).parent().next().next().next().next().children().get(0); if($(this).val() == "") { $(curStartNumNode).rules("remove"); //$(curPerPageNumNode).rules("remove"); $(curPagesNode).rules("remove"); } else { $(curStartNumNode).rules("add", {required: true}); //$(curPerPageNumNode).rules("add", {required: true}); $(curPagesNode).rules("add", {required: true}); } } }); $("#templateForm").validate({ rules: { "fidsDispTemplate.code": { required: true }, "fidsDispTemplate.name": { required: true }, "fidsDispTemplate.mainPage": { required: true }, "channelSpan" : { atLeastOneChannel : true } }, messages: { "fidsDispTemplate.code": { required: "<s:text name='template.validation.code.required'/>" }, "fidsDispTemplate.name": { required: "<s:text name='template.validation.name.required'/>" }, "fidsDispTemplate.mainPage": { required: "<s:text name='template.validation.mainPage.required'/>" }, "channelSpan" : { atLeastOneChannel : "<s:text name='template.validation.atLeastOneChannel'/>" } }, errorPlacement: function(error, element) { ///alert(element.attr("className")); if (element.attr("className") == "intClass error") { ///error.insertBefore(element); return true; } else { error.insertAfter(element); } } }); }); //the end of $(document).ready() $(window).load( function() { $('select').each( function(){ if($(this).attr("id")=="fidsDispTempdataList.channelid" && $(this).val()!="") { ///alert($(this).val()); var curStartNumNode = $(this).parent().next().next().children().get(0); //var curPerPageNumNode = $(this).parent().next().next().next().next().children().get(0); //var curPagesNode = $(this).parent().next().next().next().next().next().next().children().get(0); var curPagesNode = $(this).parent().next().next().next().next().children().get(0); try { $(curStartNumNode).rules("add", {required: true}); $(curPagesNode).rules("add", {required: true}); } catch( error ) { alert(error.message); } } }); });
发表评论
-
java.net.SocketException: Unexpected end of file from server
2014-06-27 10:55 6837引用 Caused by: org.springframewo ... -
Hadoop 异常 总结
2013-01-08 10:35 1151Directory /tmp/hadoop-lee/ ... -
MockHttpServletRequest + Controller @RequestMapping 单元测试之 NullPointerException
2012-11-27 17:51 2148MockHttpServletRequest 测试spring ... -
Spring+BoneCP+MyBatis: maxConnectionsPerPartition为1导致的junit一直停留在获取conn阶段的问题
2012-10-20 00:11 3030Spring+BoneCP+MyBatis下, 如果appli ... -
Maven:No goals have been specified for this build
2012-09-25 10:54 1780执行 mvn 命令时,指定goals避免该错误。 http: ... -
ORA-01795: 列表中的最大表达式数为 1000
2011-06-27 10:55 4262Oracle 报错 : ORA-01795: 列表中的最大表达 ... -
Hibernate : addJoin时报错: QueryException: could not resolve property
2011-05-25 10:29 2082对象A和B,都是被hibernate管理的PO。 A中有对B的 ... -
java 报错: java.util.NoSuchElementException
2011-05-08 20:19 5120出错的代码:Iterator<File> iter ... -
myeclipse报错: Unable to install breakpoint in ...
2011-05-04 02:44 2215http://solveme.wordpress.com/20 ... -
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
2011-05-02 16:29 1486ORA-12514: TNS: 监听程序当前无法识别连接描述符 ... -
struts2报错:Could not resolve matching constructor 与 通过form提交的方式向后台传数组
2011-01-15 01:36 3089后台Action中有String数组expPros:priva ... -
Oracle exp 报错:PLS-00302: component 'SET_NO_OUTLINES' must be declared
2010-12-30 22:05 4958EXP-00056: 遇到 ORACLE 错误 6550 OR ... -
IE下cloneNode(true)一个TR取其.cells[index]报 'cells.[index].firstChild'为空或不是对象
2010-11-25 17:12 2751下列js代码,报“'cells.4.firstChild'为空 ... -
Attribute "short-circuit" must be declared for element type "validator".
2010-10-15 13:24 3278使用struts2验证是报错: 引用Attribute &qu ... -
ora-08002:sequence <SEQ_NAME>.currval is not yet defined in this session
2010-09-10 13:51 2314ORA-08002 sequence string.CURRV ... -
javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
2010-07-28 12:16 5151javax.naming.NameNotFoundExcept ... -
struts2 标签 s:iterator 和 s:param 不可以结合使用
2010-04-14 20:53 1509用以下方法结合使用: <s:iterator val ... -
不要在ibatis Map文件的sql中写分号!
2010-03-30 08:10 2049碰到一个奇怪的问题,断点跟踪到getSqlMapClientT ... -
eclipse + tomcat 开发问题
2010-02-09 14:40 2825对eclipse中tomcat做clean时报: resour ... -
慎用 Oracle Float 类型
2010-01-27 19:13 6498遇到个非常奇怪的问题: 两个中间表表A和表B,用不同的结构对几 ...
相关推荐
详细解读Jquery各Ajax函数:$.get(),$.post(),$.ajax(),$.getJSON()
为大家分享了一个解决jquery插件:TypeError:$.browser is undefined报错的方法,解决报错问题的方法也很简单,需要解决此类问题的朋友不要错过这篇文章。
$.post,$.get,$.getJSON是jQuery的3种请求方式 1、$.get就是get方式提交数据,用法:$.get(url,data,callback),例: 代码如下: $.get(“../saveUser.action”,{ ‘userId’:123, ‘userCode’:’123′ },function...
原生js实现jquery $.extend方法 通过遍历对象属性来实现
$.get(),$.post(),$.ajax(),$.getJSON() 一,$.get(url,[data],[callback]) 说明:url为请求地址,data为请求数据的列表,callback为请求成功后的回调函数,该函数接受两个参数,第一个为服务器返回的数据,第二个...
注意:$.get()和$.post()方法是jQuery中的全局函数。前面讲到的load()方式是对jQuery对象进行操作的。 1、 $.get()方法 $.get()方法使用GET方式来进行异步请求。 它的语法结构为: $.get( url [, data] [, ...
var charSize = $.inArray(navLanguage, webLanguage); if (charSize > -1) { i18nLanguage = navLanguage; // 存到缓存中 jQuery.cookie("userLanguage ",navLanguage, { expires : 7 }); }; } ...
对于$.ajax请求来说,如果层级比较多,程序看起来会比较乱,而为了解决这种问题,才有了$when…done…fail…then的封装,它将$.ajax这嵌套结构转成了顺序平行的结果,向下面的$.ajax写法,看起来很乱 $.ajax({ url...
简介明亮的jquery 上传..title: "", //自定义的标题 icon: "", //图标 btn: btnType.ok, //按钮,默认单按钮 //事件 onOk: $.noop,//点击确定的按钮回调 onCancel: $.noop,//点击取消的按钮回调 ...
jQuery中数据缓存$.data的用法及源码完全解析.pdfjQuery中数据缓存$.data的用法及源码完全解析.pdf
$.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效。 如扩展$.fn.abc(),即$.fn.abc()是对jquery扩展了一个abc方法,那么后面你的每一个jquery实例都可以引用这个方法了. 那么你可以这样子:...
当然,jquery除了提供$.type的工具方法外,还提供了几个其他的工具方法:$.isFunction(), $.isArray(), $.isWindow(), $.isNumeric()等。这几个方法从方法名上就能看出其用途来,下面我们来一一讲解这几个方法在...
NULL 博文链接:https://andy2019.iteye.com/blog/1515064
‘$.browser.msie’ 为空或不是对象,这个是jQuery错误 出现这个错误,是因为升级了jQuery版本,从1.9以前升级到1.9以后,因为$.browser.msie在1.9以后的jQuery中不存在了,所以报错。 jQuery 1.9 移除了 $.browser ...
在frameset中frame页面读取另一frame页面$.data数据
jQuery.i18n.properties的API只有几个:jQuery.i18n.properties()、jQuery.i18n.prop()、jQuery.i18n.browserLang(),当然也可以采用.i18n.properties()、.i18n.properties()、.i18n.prop()、$.i18n.browserLang()的...
$.each()遍历数组或对象的具体用法
* $.ckTrim(str),返回值为去掉前后空格 str: jquery对象||元素ID||字符串 * $.ckIsEmail(str, ifAlert),返回是否为正确邮箱格式 str: jquery对象||元素ID||字符串 ifAlert: 是否弹出错误信息 * $.ckIsUrl(str, ...
$.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效。 如扩展$.fn.abc() 那么你可以这样子:$(“#div”).abc(); 通常使用extend方法扩展,详细请看API. $.fx是指jquery的特效。 如果使用...