Jquery序列化不发送输入字段

时间:2015-04-29 10:04:26

标签: javascript jquery ajax ajaxform

我有一个带有输入字段的表单,每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()。

我做错了什么?

欢迎任何建议。谢谢您的时间..

2 个答案:

答案 0 :(得分:5)

data: $('#form').serialize(),

应该成为

data: $('form').serialize(),

您正在引用错误的DOM项目

答案 1 :(得分:0)

jQuery会对待你的

$('#form')

as“具有id形式的元素”。所以你应该改变你的jQuery DOM参考。

在你的情况下,它可以是

$('form[name="listBean"]').serialize()