0

我正在使用该serialize()函数来获取表单中的所有字段。在极少数情况下,客户打电话说他们保存购物车后只剩下一件商品。经过调查,事实证明,对于某些用户,该serialize()函数仅提交最后一个名为的项目数组items[ITEMNUM] = qty

HTML:

<form id="cartitems" action="self">
    <table width="98%" border="0">
        <tr>
            <td style=" font-size:.9em;">title</td>
            <td width="30"> <input name="items[AH33.3600]" class="qty" value="1" /></td>
            <td width="30" nowrap="nowrap" style="padding-right:10px; border-bottom:1px solid #CCC;">Total</td>
        </tr>
        <tr>
            <td style=" font-size:.9em;">title</td>
            <td width="30"> <input name="items[PNP-A00SVR30]" class="qty" value="1" /></td>
            <td width="30" nowrap="nowrap" style="padding-right:10px; border-bottom:1px solid #CCC;">Total</td>
        </tr>
        <tr>
            <td style=" font-size:.9em;">title</td>
            <td width="30"> <input name="items[A4882+++++107+5X12]" class="qty" value="1" /></td>
            <td width="30" nowrap="nowrap" style="padding-right:10px; border-bottom:1px solid #CCC;">Total</td>
        </tr>
    </table>
</form>

JavaScript:

var subform = $("#cartitems").serialize();
$.ajax({
    beforeSend: function() {        
        $('#cartitems').slideUp().queue(function() {
            $(this).dequeue();
            $('#cartitems').html(' Please wait...  Cart Loading').show();
        });
    },
    url: "/order/ajax/cart",
    type: "POST",
    cache: false,
    data:  subform,
    dataType: "html",
    success: function(html){
        alert('info saved');
    }
});

我采访的最新客户正在使用 Firefox 7。

有没有人看到问题?

4

1 回答 1

0

我在几个浏览器中对此进行了测试,它似乎工作正常 - http://jsfiddle.net/z6P4x/

于 2012-05-07T14:08:03.750 回答