jquery ajax多表单提交

时间:2012-07-26 13:44:46

标签: ajax jquery asp-classic

需要一点帮助。今天我的jQuery顺利进行,直到我碰壁。我试图通过AJAX动态编辑多个表单(单个行项目),文本提交链接或某种提交按钮。问题是,我可以通过AJAX提交表单,但没有表单中的任何数据...即点击提交,它发送请求,但没有查询字符串。有人可以帮我找出遗漏的东西吗?

这是我的jquery:

        $('.submitLineChanges').click(function() {
            var formID = $(this).closest('form').attr('ID')
            datastring = $(formID).serialize();
            $.ajax({
                    type:'POST', 
                    url: 'update_ajax.asp', 
                    data: datastring,
                    success: function(response) {
                        alert("Success " + id)
                    //$('#ContactForm').find('.form_result').html(response);
                }//end ajax options
            });//end ajax
            return false;
        });//end of click function

我的表格:

    <form id="line-item-<%= intRecID %>-form" class="submitLineForm">
        <input type="hidden" name="UpdateLineItem" value="true" />
        <span class="edit" id="edit-line-<%= intRecID %>" style="display: none;">
            <span class="quantity"><input name="part_qty" id="part_qty_<%= intRecID %>" type="text" value="<%=FormatNumber(rs("quote_part_qty"),0)%>"></span>
            <span class="partno"><input name="part_no" id="part_no_<%= intRecID %>" type="text" value="<%=rs("quote_part_id")%>"></span>
            <span class="descrip"><Textarea name="part_descrip" type="text" id="descrip<%= intRecID %>" rows="3"><%=rs("quote_part_descrip")%></Textarea></span>
            <span class="sellprice">$<input name="part_sale" id="part_sale_<%= intRecID %>" type="text" value="<%=FormatNumber(rs("quote_part_sale"),2)%>"></span>
            <span class="margin" id="emargin_<%= intRecID %>"><%=margin%></span>
            <span class="cost"><strong>Cost: </strong>$<input name="part_cost" id="part_cost_<%= intRecID %>" type="text" value="<%=FormatNumber(cost,2)%>"></span>
            <span class="wt"><strong>Weight: </strong><input name="part_wt" id="part_wt_<%= intRecID %>" type="text" value="<%=FormatNumber(rs("quote_part_wt"),2)%>"></span>
            <span class="update"><input type="button"  value="Save Changes" class="submitLineChanges" /></span>
        </span>
    </form>

正如你应该知道的那样,我在ASP中运行它。表格基本上适用于购物车中的每个订单项。由于页面的性质,我不希望有一个单独的页面来编辑所有信息。看来这应该有用,但我可能会错过通过我现在的隧道视觉的东西。

我应该注意,表格是针对每一行,我不需要它提交所有表格,只需提交一个表格。

由于

1 个答案:

答案 0 :(得分:4)

更改

datastring = $(formID).serialize();

var datastring = $('#' + formID).serialize();

您需要使用ID选择器使用#前缀。此外 - 没有var关键字,您无缘无故地污染全局命名空间。

甚至更好......你可以替换

var formID = $(this).closest('form').attr('ID');
var datastring = $('#' + formID).serialize();

var datastring = $(this).closest('form').serialize(); 

找到form并将其全部串行化!!

感谢@MikeBrant提出的建议。