我放棄嘗試使用onblur或focusout來提交表單,因爲這會強制刷新頁面。現在我使用一個按鈕,它使用ajax帖子並在項目添加時清除數量字段。jquery ajax表單提交在IE8中無法正常工作
我現在的問題是,IE8不能很好地使用這個解決方案。
$('.qty').change('input[type=text]').val('');
這適用於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 2012-04-23 21:31:42
謝謝,我會嘗試 – Resq32 2012-04-23 21:47:28