我有一个带有输入字段的表单,每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()。
我做错了什么?
欢迎任何建议。谢谢您的时间..
答案 0 :(得分:5)
data: $('#form').serialize(),
应该成为
data: $('form').serialize(),
您正在引用错误的DOM项目
答案 1 :(得分:0)
jQuery会对待你的
$('#form')
as“具有id形式的元素”。所以你应该改变你的jQuery DOM参考。
在你的情况下,它可以是
$('form[name="listBean"]').serialize()