您的位置:首页 > Web前端 > JQuery

使用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>
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;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: