我正在使用serialize()
函數來獲取表單中的所有字段。在極少數情況下,顧客稱他們保存購物車後只留下一件物品。經過調查,事實證明,對於某些用戶,serialize()
函數僅提交名爲items[ITEMNUM] = qty
的最後一個項目數組。.serialize()在所有瀏覽器中不一致
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
有誰看到了問題?
我只看到一個輸入在車中的物品構成,多少應該有? –
對不起,行標籤在foreach()中。數量會有所不同,但有問題的客戶有不止一個。有時候只有一兩件東西會成功,其餘的東西都會掉下來。 – RichardW11
幫助顯示標記是沒有severside代碼。也就是從視圖源/調試器複製標記。 – epascarello