需要防止默认的jquery

时间:2012-09-19 17:34:40

标签: jquery

我需要停止提交的表单(添加到购物车),假设没有设置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;  
}

...

一切都像冠军一样,直到我达到我需要阻止提交

的程度

2 个答案:

答案 0 :(得分: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 - 好了,现在我明白你在说什么...如果你只是在表格的提交活动中做了所有事情,你就不需要听取按键输入

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

答案 1 :(得分:1)

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

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

更新由于这是表单提交,因此您应该处理提交事件,以便在按Enter键时也可以使用它。 http://jsfiddle.net/aWPKp/1/

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