0

我制作了一个脚本来提交表单,然后打开一个显示“已添加到购物车”的对话框。它适用于FF。Chrome 将我重定向到购物车页面,而 IE 什么也不做,甚至不提交任何内容。

<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>

请帮我

编辑 我忘了提到的是,当表单提交时,用户必须留在同一页面上,而不是被重定向到“购物车”页面。

4

1 回答 1

1

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

如果您想通过 ajax 或其他方式提交表单,则必须使用此插件。

在 Complete Method 上,您可以做任何您想做的事情。

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

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

 });

您必须指定表单的操作。此表单必须提交的操作。

于 2012-06-06T10:18:57.187 回答