.serialize()在所有浏览器中都不一致

时间:2012-05-07 12:44:59

标签: javascript jquery html

我正在使用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.

有没有人看到问题?

1 个答案:

答案 0 :(得分:0)

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