使用jQuery的children()方法遇到的问题
2017-03-13 12:12
597 查看
项目中一个页面上循环生成了多个表单, 每个表单都有一个submit按钮, 单个提交, 提交之前要做验证, 从当前要提交的表单中获取input的值, 并进行验证, 用到了children()方法, 但是突然发现有的节点获取不到, 查看文档, 发现children方法时这样介绍的
鉴于一个jQuery对象,表示一个DOM元素的集合,.children()方法允许我们通过在DOM树中对这些元素的直接子元素进行搜索,并且构造一个新的匹配元素的jQuery对象。.find()和.children()方法是相似的,但后者只是针对向下一个级别的DOM树。还要注意的是和大多数的jQuery方法一样,.children()不返回文本节点;让所有子元素包括使用文字和注释节点,建议使用.contents()。
原来 children()只能获取当前对象的下一级节点, 但是页面结构是这样的, 这样就导致能获取到locationId, 但是不能获取到 placeStartDate 的值, 然后在网上查, 发现了直接用jQuery的选择器 $(selector, context) 传入参数即可, 第一个是选择器, 第二个是 jQuery 对象,
<s:iterator value="form.list" var="vals">
<li>
<form method="post" action="ajax/saveXmlContent.do">
<input name="form.locationId" id="locationid"
value="<s:property value="form.locationId"/>" type="hidden" /> <input
name="form.language" id="language"
value="<s:property value="form.language"/>" type="hidden" /> <input
name="form.xmltype" id="xmltype"
value="<s:property value="form.xmltype"/>" type="hidden" /> <input
name="form.xmlUrl" id="xmlUrl"
value="<s:property value="form.xmlUrl"/>" type="hidden" /> <input
name="bootForm.contentId" id="contentId" type="hidden"
value="<s:property value="#vals.contentId"/>" />
<div class="num">
<s:property value="#vals.weight" />
</div>
<div class="tdiv info">
<div class="tdiv i5">
<div class="tdiv i51">
<!-- 日期选择 -->
<div id="time">
<div class="tdiv mWidth500">
<ul class="tdiv dateInterval">
<li class="dateType"><label>开始日期</label> <input
type="text" name="amsRecommendConfig.placeStartDate"
id="placeStartDate"
value="<s:property value="#vals.placeStartDate"/>" /></li>
<li class="dateType"><label>结束日期</label> <input
type="text" name="amsRecommendConfig.placeEndDate"
id="placeEndDate"
value="<s:property value="#vals.placeEndDate"/>" /></li>
</ul>
</div>
</div>
<div class="tdiv i52">
<button class="btn submit" type="submit" id="submit"
name="submit_<s:property value="#vals.contentId"/>"
onclick="submitContent(this)">确认保存</button>
</div>
</div>
</div>
</form>
</li>
</s:iterator>
鉴于一个jQuery对象,表示一个DOM元素的集合,.children()方法允许我们通过在DOM树中对这些元素的直接子元素进行搜索,并且构造一个新的匹配元素的jQuery对象。.find()和.children()方法是相似的,但后者只是针对向下一个级别的DOM树。还要注意的是和大多数的jQuery方法一样,.children()不返回文本节点;让所有子元素包括使用文字和注释节点,建议使用.contents()。
原来 children()只能获取当前对象的下一级节点, 但是页面结构是这样的, 这样就导致能获取到locationId, 但是不能获取到 placeStartDate 的值, 然后在网上查, 发现了直接用jQuery的选择器 $(selector, context) 传入参数即可, 第一个是选择器, 第二个是 jQuery 对象,
<s:iterator value="form.list" var="vals">
<li>
<form method="post" action="ajax/saveXmlContent.do">
<input name="form.locationId" id="locationid"
value="<s:property value="form.locationId"/>" type="hidden" /> <input
name="form.language" id="language"
value="<s:property value="form.language"/>" type="hidden" /> <input
name="form.xmltype" id="xmltype"
value="<s:property value="form.xmltype"/>" type="hidden" /> <input
name="form.xmlUrl" id="xmlUrl"
value="<s:property value="form.xmlUrl"/>" type="hidden" /> <input
name="bootForm.contentId" id="contentId" type="hidden"
value="<s:property value="#vals.contentId"/>" />
<div class="num">
<s:property value="#vals.weight" />
</div>
<div class="tdiv info">
<div class="tdiv i5">
<div class="tdiv i51">
<!-- 日期选择 -->
<div id="time">
<div class="tdiv mWidth500">
<ul class="tdiv dateInterval">
<li class="dateType"><label>开始日期</label> <input
type="text" name="amsRecommendConfig.placeStartDate"
id="placeStartDate"
value="<s:property value="#vals.placeStartDate"/>" /></li>
<li class="dateType"><label>结束日期</label> <input
type="text" name="amsRecommendConfig.placeEndDate"
id="placeEndDate"
value="<s:property value="#vals.placeEndDate"/>" /></li>
</ul>
</div>
</div>
<div class="tdiv i52">
<button class="btn submit" type="submit" id="submit"
name="submit_<s:property value="#vals.contentId"/>"
onclick="submitContent(this)">确认保存</button>
</div>
</div>
</div>
</form>
</li>
</s:iterator>
function beforeSubmitForm(curform){ var obj = $(curform[0]).get(0); var jqObj = $(obj); var xmltype = jqObj.children("input#xmltype").val(); if (xmltype == 1){ var inputStartDate = new Date($("#placeStartDate",jqObj).val().replace(/-/g,"-")); var inputEndDate = new Date($("#placeEndDate",jqObj).val().replace(/-/g,"-")); console.log(inputStartDate + "---" + inputEndDate); if(inputStartDate>inputEndDate){ $.ligerDialog.error("开始日期应在结束日期之前!"); return false; }else{ return true; } }else{ return true; } }
相关文章推荐
- jQuery 使用ajax提交遇到兼容性问题及解决方法
- Jquery append方法使用中遇到问题记录
- JS/Jquery使用过程中遇到的问题和解决方法
- jQuery使用时遇到的一些问题和解决方法
- canvas中的getContext("2d")方法在jQuery中的使用中遇到的小问题解决办法
- 在.NET中发送邮件,使用回执功能中遇到问题的解决方法[在NOTES服务器上,C#,.NET2.0环境]
- asp.net mvc 2 简简单单做开发 使用DataContext扩展方法Find<TEntity>(TEntity obj) 遇到的问题
- 虚拟IP实验,遇到场景启用使用虚拟IP就报错,不启用可以正常运行的问题,解决方法
- Java使用Oracle遇到的最大游标超出问题及其解决方法
- jQuery中getScript方法引入外部js文件,乱码处理(自己遇到的问题)
- 前端使用Jquery的getJSON方法,后台使用PHP,解决IE和火狐Firefox中存在的跨域ajax请求问题。
- 使用SourceSafe管理软件开发可能遇到的问题及解决方法
- 最新的PHP java bridge使用方法和遇到的问题
- java使用String.split方法时遇到的问题(转载)
- jQuery UI Autocomplete 使用 ajax 方法传输Json数据出现乱码问题的解决
- Eclipse使用遇到的问题解决方法收集
- 使用pbrt 1.03遇到的问题和解决方法
- 使用window.open()方法时遇到的问题
- 使用Adobe PDF Reader组件遇到问题之解决方法
- 使用VIM开发软件项目 - (16) vim编译中遇到的问题及解决方法