2

需要一点帮助。我的 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 中运行它。该表格基本上适用于购物车中的每个行项目。由于页面的性质,我不想有一个单独的页面来编辑所有信息。看来这应该可行,但我现在的隧道视野很可能错过了一些东西。

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

谢谢

4

1 回答 1

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的建议。

于 2012-07-26T13:46:30.260 回答