我制作了一个提交表单的脚本,然后打开一个显示“已添加到购物车”的对话框。它适用于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>
请帮帮我
修改 我忘了提到的是,当表单提交时,用户必须保持在同一页面而不是被重定向到“购物车”页面。
答案 0 :(得分: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);
});
您必须指定表单的操作。必须提交此表格的行动。