2012-09-19 83 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':) –