【问题标题】:Jquery serialize does not send input fieldsJquery序列化不发送输入字段
【发布时间】:2015-04-29 10:04:26
【问题描述】:

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

我做错了什么?

欢迎提出任何建议。感谢您的宝贵时间..

【问题讨论】:

    标签: javascript jquery ajax ajaxform


    【解决方案1】:
    data: $('#form').serialize(),
    

    应该变成

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

    你引用了错误的 DOM 项

    【讨论】:

    • 或者 - 更具体地说 - 将 id 属性添加到您的 form (如果页面上有多个表单)。
    • @RaphaelMüller 感谢您的回复。在实际场景中,它已经在表单和输入字段上附加了一个 id。但是我错过了示例代码。道歉。
    【解决方案2】:

    jQuery 会对待你的

    $('#form')
    

    作为“具有 id 形式的元素”。所以你应该改变你的 jQuery DOM 引用。

    在你的情况下,它可以是

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-08
      • 2021-03-13
      • 2012-01-18
      • 2021-08-29
      • 2014-01-01
      • 2012-02-05
      • 2014-07-30
      • 2016-02-07
      相关资源
      最近更新 更多