Jquery 序列化不发送输入字段
Jquery serialize does not send input fields
我有一个带有输入字段的表单,每 1 分钟触发一次,以将用户条目更新到服务器。
$(document).ready(function()
{
timer = setInterval(function() { save(); }, 60000);
});
function save() {
jQuery('form').each(function() {
jQuery.ajax({
url: "http://localhost:7002/submitStudent.do?requestType=auto&autosave=true",
data: $('#form').serialize(),
type: 'POST',
success: function(data){
if(data && data == 'success') {
alert("data saved");
}else{
}
}
});
});
}
这是我的表格
<form name="listBean">
<c:forEach var="Item" items="${listBean.nameList}" varStatus="status">
<input type="number"name="nameList<c:outvalue='[${status.index}]'/>.initialWeight" onchange="checkOnChange(this,'<c:out value='${Item.personId}'/>','<c:out value='${Item.minWeight}'/>','<c:out value='${Item.maxWeight}'/>','<c:out value='[${status.index}]'/>')">
<br><br>
<input type="number" name="nameList<c:out value='[${status.index}]'/>.finalWeight" onchange="checkOnChange(this,'<c:out value='${Item.personId}'/>','<c:out value='${Item.minWeight}'/>','<c:out value='${Item.maxWeight}'/>','<c:out value='[${status.index}]'/>')">
<br><br>
<input type="text" class="formtext" name="nameList<c:out value='[${status.index}]'/>.Reason" id ="reason<c:out value='[${status.index}]'/>" value="" maxlength="255" >
<br><br>
<input type="submit" value="submit" id="submit" />
</c:forEach>
</form>
因此,对服务器的 ajax 调用每 1 分钟工作正常。但是输入的值在服务器端不可用。
我得到的值是 listBean.Item.getInitialWeight()。
我做错了什么?
任何建议都welcome.Thanks适合您的时间..
data: $('#form').serialize(),
应该变成
data: $('form').serialize(),
您引用了错误的 DOM 项目
jQuery 会治疗你的
$('#form')
为"an element with id form"。所以你应该改变你的 jQuery DOM 参考。
你的情况可以是
$('form[name="listBean"]').serialize()
我有一个带有输入字段的表单,每 1 分钟触发一次,以将用户条目更新到服务器。
$(document).ready(function()
{
timer = setInterval(function() { save(); }, 60000);
});
function save() {
jQuery('form').each(function() {
jQuery.ajax({
url: "http://localhost:7002/submitStudent.do?requestType=auto&autosave=true",
data: $('#form').serialize(),
type: 'POST',
success: function(data){
if(data && data == 'success') {
alert("data saved");
}else{
}
}
});
});
}
这是我的表格
<form name="listBean">
<c:forEach var="Item" items="${listBean.nameList}" varStatus="status">
<input type="number"name="nameList<c:outvalue='[${status.index}]'/>.initialWeight" onchange="checkOnChange(this,'<c:out value='${Item.personId}'/>','<c:out value='${Item.minWeight}'/>','<c:out value='${Item.maxWeight}'/>','<c:out value='[${status.index}]'/>')">
<br><br>
<input type="number" name="nameList<c:out value='[${status.index}]'/>.finalWeight" onchange="checkOnChange(this,'<c:out value='${Item.personId}'/>','<c:out value='${Item.minWeight}'/>','<c:out value='${Item.maxWeight}'/>','<c:out value='[${status.index}]'/>')">
<br><br>
<input type="text" class="formtext" name="nameList<c:out value='[${status.index}]'/>.Reason" id ="reason<c:out value='[${status.index}]'/>" value="" maxlength="255" >
<br><br>
<input type="submit" value="submit" id="submit" />
</c:forEach>
</form>
因此,对服务器的 ajax 调用每 1 分钟工作正常。但是输入的值在服务器端不可用。
我得到的值是 listBean.Item.getInitialWeight()。
我做错了什么?
任何建议都welcome.Thanks适合您的时间..
data: $('#form').serialize(),
应该变成
data: $('form').serialize(),
您引用了错误的 DOM 项目
jQuery 会治疗你的
$('#form')
为"an element with id form"。所以你应该改变你的 jQuery DOM 参考。
你的情况可以是
$('form[name="listBean"]').serialize()