onblurまたはfocusoutを使用してフォームを送信しようとするのをやめました。今、私はボタンを使用し、項目が追加されると、ajax投稿を使用してqtyフィールドをクリアします。jquery ajaxフォームの送信がIE8で正常に動作しない
私の問題は今、IE8がこのソリューションでうまくいきません。
これはFF、Chrome、Safariで動作しますが、IE8では動作しません。 IE8では、ユーザーがアイテムの追加ボタンを押すとフォームが送信され、ページが更新されます。明らかに、IE8ではajax呼び出しが失敗しています。私は理由を理解できません。 .changeコールの前にデフォルトアクションを防止する必要がありますか?
jcart-javascript.php
// SEND ITEM INFO VIA POST TO INTERMEDIATE SCRIPT WHICH CALLS jcart.php AND RETURNS UPDATED CART HTML
// $.post('<?php echo $jcart['path'];?>jcart-relay.php', { "<?php echo $jcart['item_id']?>": itemId, "<?php echo $jcart['item_price']?>": itemPrice, "<?php echo $jcart['item_name']?>": itemName, "<?php echo $jcart['item_qty']?>": itemQty, "<?php echo $jcart['item_add']?>" : itemAdd }, function(data) {
$.post('<?php echo $jcart['path'];?>jcart-relay.php', postData, function(data) {
//JSTN-end
// REPLACE EXISTING CART HTML WITH UPDATED CART HTML
$('#jcart').html(data);
$('.jcart-hide').remove();
$('.qty').change('input[type=text]').val('');
});
// PREVENT DEFAULT FORM ACTION
return false;
});
// WHEN THE VISITOR HITS THEIR ENTER KEY
// THE UPDATE AND EMPTY BUTTONS ARE ALREADY HIDDEN
// BUT THE VISITOR MAY UPDATE AN ITEM QTY, THEN HIT THEIR ENTER KEY BEFORE FOCUSING ON ANOTHER ELEMENT
// THIS MEANS WE'D HAVE TO UPDATE THE ENTIRE CART RATHER THAN JUST THE ITEM WHOSE QTY HAS CHANGED
// PREVENT ENTER KEY FROM SUBMITTING FORM SO USER MUST CLICK CHECKOUT OR FOCUS ON ANOTHER ELEMENT WHICH TRIGGERS CHANGE FUNCTION BELOW
$('#jcart').keydown(function(e) {
// IF ENTER KEY
if(e.which == 13) {
// PREVENT DEFAULT ACTION
return false;
}
});
代わりに、あなたの 'keydown'ハンドラで' false'のを返すので、 'e.preventDefault(使用を検討してください)' – Madbreaks
おかげで、私は – Resq32