- 浏览: 1148748 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 7270引用 Caused by: org.springframewo ... -
Hadoop 异常 总结
2013-01-08 10:35 1179Directory /tmp/hadoop-lee/ ... -
MockHttpServletRequest + Controller @RequestMapping 单元测试之 NullPointerException
2012-11-27 17:51 2219MockHttpServletRequest 测试spring ... -
Spring+BoneCP+MyBatis: maxConnectionsPerPartition为1导致的junit一直停留在获取conn阶段的问题
2012-10-20 00:11 3100Spring+BoneCP+MyBatis下, 如果appli ... -
Maven:No goals have been specified for this build
2012-09-25 10:54 1817执行 mvn 命令时,指定goals避免该错误。 http: ... -
ORA-01795: 列表中的最大表达式数为 1000
2011-06-27 10:55 4293Oracle 报错 : ORA-01795: 列表中的最大表达 ... -
Hibernate : addJoin时报错: QueryException: could not resolve property
2011-05-25 10:29 2115对象A和B,都是被hibernate管理的PO。 A中有对B的 ... -
java 报错: java.util.NoSuchElementException
2011-05-08 20:19 5157出错的代码:Iterator<File> iter ... -
myeclipse报错: Unable to install breakpoint in ...
2011-05-04 02:44 2253http://solveme.wordpress.com/20 ... -
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
2011-05-02 16:29 1538ORA-12514: TNS: 监听程序当前无法识别连接描述符 ... -
struts2报错:Could not resolve matching constructor 与 通过form提交的方式向后台传数组
2011-01-15 01:36 3123后台Action中有String数组expPros:priva ... -
Oracle exp 报错:PLS-00302: component 'SET_NO_OUTLINES' must be declared
2010-12-30 22:05 5009EXP-00056: 遇到 ORACLE 错误 6550 OR ... -
IE下cloneNode(true)一个TR取其.cells[index]报 'cells.[index].firstChild'为空或不是对象
2010-11-25 17:12 2786下列js代码,报“'cells.4.firstChild'为空 ... -
Attribute "short-circuit" must be declared for element type "validator".
2010-10-15 13:24 3313使用struts2验证是报错: 引用Attribute &qu ... -
ora-08002:sequence <SEQ_NAME>.currval is not yet defined in this session
2010-09-10 13:51 2348ORA-08002 sequence string.CURRV ... -
javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
2010-07-28 12:16 5185javax.naming.NameNotFoundExcept ... -
struts2 标签 s:iterator 和 s:param 不可以结合使用
2010-04-14 20:53 1539用以下方法结合使用: <s:iterator val ... -
不要在ibatis Map文件的sql中写分号!
2010-03-30 08:10 2078碰到一个奇怪的问题,断点跟踪到getSqlMapClientT ... -
eclipse + tomcat 开发问题
2010-02-09 14:40 2860对eclipse中tomcat做clean时报: resour ... -
慎用 Oracle Float 类型
2010-01-27 19:13 6554遇到个非常奇怪的问题: 两个中间表表A和表B,用不同的结构对几 ...
相关推荐
而Jquery库提供了一系列封装好的Ajax函数,如$.get(), $.post(), $.ajax(), 和$.getJSON(),这些函数简化了前端开发者与后端数据交互的过程。 ### 1. $.get() `$.get()`函数是最简单的一种异步请求方式,它发送一...
1. jQuery插件报错问题:在使用jQuery插件时可能会遇到"TypeError: $.browser is undefined"的报错,这主要是因为从jQuery 1.9版本开始,jQuery移除了$.browser和$.browser.version这两个用于获取浏览器基本信息的...
### jQuery $.post() 方法详解与 JSON 数据交互 在现代 Web 开发中,客户端与服务器端的数据交换是非常重要的一个环节。jQuery 提供了多种 AJAX 方法来简化这一过程,其中 `$.post()` 是一种常用的方式来实现客户端...
本篇将详细介绍如何解决jQuery跨域问题,涉及的方法包括$.get、$.post和$.getJSON等。 首先,我们需要理解什么是跨域。同源策略是浏览器为保障安全而实施的一项机制,它规定JavaScript只能访问与当前页面同源(协议...
在JavaScript中,jQuery库提供了两种扩展对象的方法,即`$.fn.extend`和`$.extend`。它们都用于增加或修改现有对象的功能,但应用场景不同。本文将深入解析这两种方法的实现原理和用途。 首先,`$.fn.extend`是用于...
`$.fn.extend`是jQuery库中的一个核心方法,主要用于扩展jQuery对象的方法集合。这个方法允许开发者自定义jQuery的函数,从而实现对DOM元素的操作或添加新的功能。在jQuery中,`$.fn`实际上是`$.prototype`的一个...
当你希望自定义jQuery对象的行为或开发jQuery插件时,你会使用`$.fn`。 理解这些概念后,你就可以更有效地利用jQuery提供的强大功能,编写出更加优雅和高效的代码。通过实践和探索`Jquery中$与$.fn的区别实例`中的...
2. **data** - 可选,一个对象或字符串,作为发送到服务器的数据。如果是一个对象,它会被转换成查询字符串。 3. **success** - 可选,一个回调函数,当请求成功时被调用,返回的数据会作为参数传入。 4. **dataType...
$.ajax({ type : get, data : {'dbId':node.dbId,'viewId':node.id,'date':new Date()}, url : ${ctp}/ViewOperate/ShowViewSql, dataType : json, success : function(data){ console.log(data); l
在jQuery中,`.data`方法是用于在DOM元素或者JavaScript对象上存储和检索数据的关键功能。它提供了一种方便的方式来管理与元素相关的私有数据,避免了直接操作DOM的性能开销。这篇文章将详细解析jQuery中`.data`方法...
- **jQuery与其他库的兼容**:jQuery设计时考虑了与其他库共存,如使用$.noConflict()避免命名冲突。 - **jQuery源码阅读**:理解.min.js背后的源码逻辑,有助于深入学习JavaScript和前端开发。 总之,jQuery ...
‘$.browser.msie’ 为空或不是对象,这个是jQuery错误 出现这个错误,是因为升级了jQuery版本,从1.9以前升级到1.9以后,因为$.browser.msie在1.9以后的jQuery中不存在了,所以报错。 jQuery 1.9 移除了 $.browser ...
$.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效。 如扩展$.fn.abc(),即$.fn.abc()是对jquery扩展了一个abc方法,那么后面你的每一个jquery实例都可以引用这个方法了. 那么你可以这样子:...
4. 遍历与迭代:$.each()方法提供了遍历对象或数组的能力,可以方便地进行循环操作。 5. 条件判断:$.if()和$.switch()模拟了条件语句,使得JavaScript代码更接近自然语言,易于理解和维护。 6. 数组和对象操作:$...
6. **遍历与过滤(Traversing & Filtering)**:$.fn.next()、$.fn.prev()遍历元素,$.fn.first()、$.fn.last()选择首个或最后一个,$.fn.filter()和$.fn.not()进行过滤。 7. **属性操作(Attribute Handling)**:...
$.get(),$.post(),$.ajax(),$.getJSON() 一,$.get(url,[data],[callback]) 说明:url为请求地址,data为请求数据的列表,callback为请求成功后的回调函数,该函数接受两个参数,第一个为服务器返回的数据,第二个...
对于$.ajax请求来说,如果层级比较多,程序看起来会比较乱,而为了解决这种问题,才有了$when…done…fail…then的封装,它将$.ajax这嵌套结构转成了顺序平行的结果,向下面的$.ajax写法,看起来很乱 $.ajax({ url...
《jQuery教程CHM格式》是一本专为开发者设计的手册,它以压缩包的形式提供,包含了一系列关于jQuery库的详细教学内容。jQuery是一款强大的JavaScript库,它的出现极大地简化了JavaScript的DOM操作、事件处理、动画...
1. 插入元素:$.append(), $.prepend(), $.before(), $.after()等方法用于在已有元素后或前插入新元素,或者替换现有元素。 2. 删除元素:$.remove()可以移除匹配的元素,$.detach()则保留事件处理函数的同时移除...