同时获取动态表单列表的值。
我在template.js文件中有以下代码。
var count = $("#marker").children().length;
var partList = [];
for(var x=1; x<count+1; x++){
var fName = $("#marker.parts:nth-child(x)").find('input.fName').val();
var lName = $("#marker.parts:nth-child(x)").find('input.lName').val();
var eMail = $("#marker.parts:nth-child(x)").find('input.eMail').val();
var date = $("#marker.parts:nth-child(x)").find('input.datepicker').val();
object = {fName: fName, lName: lName, eMail: eMail, date: date};
partList.push(object);
}
return partList;
表单中充满了字符串值。
当我运行时 - 在浏览器控制台中,错误显示为: 未捕获错误:语法错误,无法识别的表达式:: nth-child
但是,如果我将jQuery语句直接写入浏览器控制台。
e.g. $("#marker.parts:nth-child(1)").find('input.fName').val();
瞧瞧瞧。表格值正确选取。并且在表单中的每个输入字段上进行测试,它不会破坏并获取正确的表单值。
请帮助我了解我哪里出错了。
由于
html模板的相关部分:
<template name="createNewEvent">
<form id="createForm">
<!--......other form components are here....-->
<section id="marker">
{{#each friendInput}}
<div class='parts'>Name of Participant : <input type='text' class="fName"
placeholder='First Name'> <input type='text' class="lName" placeholder='Last
Name'> Email Address : <input id="searchBox" type='text' placeholder='email
address of friend' class="eMail"> Date for Hosting: {{> add_part}}</div>
{{/each}}
</section>
</form>
</template>
<template name="add_part">
<input class="datepicker" id="date-id" name="date">
</template>
friendInput助手只是返回一个具有正确数字的数组来迭代。
答案 0 :(得分:1)
由于x
是变量,因此请像这样使用
for(var x=1; x<count+1; x++){
var fName = $("#marker.parts:nth-child("+x+")").find('input.fName').val();
var lName = $("#marker.parts:nth-child("+x+")").find('input.lName').val();
var eMail = $("#marker.parts:nth-child("+x+")").find('input.eMail').val();
var date = $("#marker.parts:nth-child("+x+")").find('input.datepicker').val();
object = {fName: fName, lName: lName, eMail: eMail, date: date};
partList.push(object);
}
在您的代码x
中,我们只会将其视为字符串x
。它不会在那里充当变量。这就是为什么它显示错误