2012-03-20 138 views
-1

我放棄嘗試使用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; 
    } 
}); 
+0

而是在'keydown'處理程序返回'FALSE'的,可以考慮使用'e.preventDefault()' – Madbreaks 2012-04-23 21:31:42

+0

謝謝,我會嘗試 – Resq32 2012-04-23 21:47:28

回答

0

片斷如果你想觸發提交事件,使用:

$('form.jcart').submit(); 

我希望我得到了你的意圖,監守代碼有格式不正確,問題不夠清楚。

+0

我可以得到表單提交該行,但我想要做的是提交輸入焦點。而無需點擊提交按鈕或回車。 – Resq32 2012-03-20 21:25:30

+0

@Resq32:'$('form.cart input [type =「text」]。focusout(function(){$(this).closest('form')。submit()});' – gdoron 2012-03-20 21:51:25

+0

恐怕('。qty')。沒有工作,我會再回來看看,謝謝 – Resq32 2012-03-20 23:42:07

0

使用blur

$('form.cart input[type=text]').blur(function(){ 
    $(this).parents('form').submit(); 
} 

乾杯

+0

恐怕不起作用,它強制刷新頁面,使用戶回到第一頁。更改('input [type = text]')。val('');適用於所有瀏覽器,但IE8添加項目並且頁面不刷新 – Resq32 2012-04-23 21:57:21

+0

是的,因爲它提交了模糊的表單,你的問題標題說你想做什麼,如果這不是你想要的,你想要什麼?工作你的問題 - 提出一個具體的問題(一個)並提供所有相關的代碼。 – Madbreaks 2012-04-23 23:30:45