1

假设未设置 cookie,我需要停止提交表单(添加到购物车)

jQuery('input[name=addtocart]').click(function() {  
    ...
switch(curr_active_table){
      case '1': {
        ...
    alert(" Please select a Lense Option first before Adding to cart");
                event.preventDefault();
    break;  
}

...

一切都像冠军一样工作,直到我达到需要阻止偶数提交的地步

4

2 回答 2

5

您必须传入 [event] 参数

jQuery('input[name=addtocart]').click(function(event) {  //<-- see event inside function()
    ...
switch(curr_active_table){
      case '1': {
        ...
    alert(" Please select a Lense Option first before Adding to cart");
                event.preventDefault();
    break;  
});

然后强制输入键默认点击动作

jQuery('form').keypress(function(event) {  //<-- listen for keypress inside form
    if (e.keyCode == 13) { // <-- if enter default to click action 
        jQuery('input[name=addtocart]').click();//<- trigger click action
        return false;// or event.preventDefault();
    }
});

正如您在此小提琴中看到的那样..这将阻止表单内的输入键提交

http://jsfiddle.net/8mYnN/1/

@Juan Mendes - 好的,现在我明白你在说什么了。如果你只是在表单的提交事件中做所有事情,你就不需要听 enter keypress

jQuery('formselector').submit(function(event) {  //<-- see event inside function()
        ...
    switch(curr_active_table){
          case '1': {
            ...
        alert(" Please select a Lense Option first before Adding to cart");
                    event.preventDefault();
        break;  
 });
于 2012-09-19T17:35:32.550 回答
1

Wirey 的答案有效,另一种方法是从处理程序http://jsfiddle.net/aWPKp/返回 false

$('input[name=addtocart]').click(function(){
  return false;    
});​

更新由于这是一个表单提交,您应该处理提交事件,以便在您点击提交按钮时它也可以工作。http://jsfiddle.net/aWPKp/1/

$('#formId').submit(function(){
  return false;    
});​
于 2012-09-19T17:38:16.887 回答