serialize()
関数を使用してフォームのすべてのフィールドを取得しています。ごくまれに、カートを保存した後に1つのアイテムしか残されていないと顧客は言います。調査の結果、一部のユーザーにとって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
を使用していたと話した最新の顧客?
私は唯一のカートの形で1つの入力を参照して、どのように多く存在すべきですか? –
申し訳ありませんが、行タグはforeach()内にあります。番号は異なりますが、問題を抱える顧客には複数のものがあります。時には1つ2つのアイテムだけがそれを作り、残りは落とされることがあります。 – RichardW11
マークアップが壊れたコードなしで表示するのに役立ちます。ビューソース/デバッガからマークアップをコピーします。 – epascarello