2012-06-06 49 views
0

我已經創建了一個腳本來提交表單,然後打開一個對話框顯示「已添加到購物車」。它在FF中工作。 Chrome將我重定向到購物車頁面,而IE什麼也不做,甚至不提交任何內容。表單提交在IE和Chrome中不起作用

<script type="text/javascript"> 
var productId = {{ product.vid }}; 
var addUrl = "http://shop.com/cart/add/" +productId+ "/?quantity="; 

jQuery(document).ready(function(){ 
bakVormAsset("#formProduct"); 
}); 

function bakVormAsset(product){ 
jQuery(product + " #formProductQuantity").val("1"); 
jQuery(product + " #formProductQuantity").keyup(function() { 
var val = jQuery(product + " #formProductQuantity").first().val(); 
}); 

jQuery(product + " .opener").click(function(event) { 
event.preventDefault(); 
$.get($(this).attr('href'), function(data, status) { 
    var val = jQuery(product + " #formProductQuantity").first().val(); 

     // Go to page 
     window.location.href = addUrl + val; 
     $("#dialog").dialog("open"); 
     return false; 
}); 
} 
</script> 

我的形式如下:

<form class="formProduct" id="formProduct" action="#" method="post"> 
<input type="text" name="quantity" id="formProductQuantity" value="{{ product.stock.minimum }}" /> 
<a class="button blue opener" href="" title="{{ 'Add to cart' | t }}"><span>{{ 'Add to cart' | t }}</span></a> 
</form> 

請幫我

編輯 什麼我忘了提的是,偏離航向當表單提交的用戶必須留在相同的頁面,而不是被重定向到「購物車」頁面。

回答

1

http://jquery.malsup.com/form/

,如果你想通過AJAX或東西來提交表單,你必須使用這個插件。

而在完整的方法,你可以做任何你想做的事情。

jQuery(product + " .opener").click(function(event) { 
    event.preventDefault(); 
     var options = { 
      success:  function(){ 
           $("#dialog").dialog("open"); 
          } // post-submit callback 
    }; 

    $('#myForm2').ajaxSubmit(options); 

}); 

您必須指定表單的操作。這種形式必須提交的行動。

+0

這是唯一的方法嗎? – Meules

+0

會有很多其他的方法。但我更喜歡這個插件做到這一點。因爲這個插件將處理瀏覽器的特定設置。 –

+0

好的thx ....是否可以幫助我以上述方式設置?我從鏈接中閱讀了文檔,但並不像描述的那樣容易(知識有限)。 – Meules