购物车表单包含带有 ajax 提交的验证表单。如果验证失败,将出现 alert() 框并取消提交。return false
如果验证失败,则不再调用提交方法。随后单击按钮将被忽略。
只有第一次单击绿色Lisa ostukorvi
按钮会导致警报框。随后的点击被忽略,submit() 事件不会触发。这发生在 IE10、FireFox 和 Chrome 中。如何解决这个问题?
<script>
var request;
$(function() {
$(".browse-addtocart-form").submit(function(event){
if (request) {
request.abort();
}
var $form = $(this);
var $inputs = $form.find("input, select, button, textarea");
var serializedData = $form.serialize();
var q = parseInt(this.quantity.value, 10);
if(isNaN(q) || q === 0){
alert('Fill quantity');
$(this.quantity).focus();
// TODO: Why this causes submit event not to occur on subsequent clicks:
return false;
}
request = $.post('/AddToCart', serializedData );
return false;
});
});
</script>
<form class='browse-addtocart-form' action="/AddToCartPost" method="post">
<input type="submit" value="Add to cart" class='button green small bigrounded' />
</form>
</html>
使用 jquery、jquery-ui、ASP .NET MVC2。