2012-09-19 64 views
1

我需要从停止提交一个表单(添加到购物车),假设一个cookie未设置需要防止默认的jQuery

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

...

一切就像一个冠军直到我到了我需要停止甚至从提交

回答

5

你必须通过[事件]参数

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/

@胡安门德斯 - 好吧现在我明白你在说什么..你不需要听进入按键,如果你只是在形式提交事件中的一切事情

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; 
}); 
+0

如果窗体使用回车键提交 –

+0

您应该修改答案澄清,你不应该使用前两个例子 –

1

Wirey的回答作品,另一种是从处理器http://jsfiddle.net/aWPKp/

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

UPDATE返回false因为这是一个表单提交,你应该处理提交事件,因此,它也当你打的作品进入提交按钮。 http://jsfiddle.net/aWPKp/1/

$('#formId').submit(function(){ 
    return false;  
});​ 
+0

不会阻止表单提交一起这不会阻止提交? –

+0

+1。提交替代 –

+0

@wirey是的,它会。只需添加尽可能多的代码,就可以绕过'return false':) –