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 キーを押す必要はありません

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

更新これはフォームの送信であるため、送信ボタンでEnterキーを押したときにも機能するように、送信イベントを処理する必要があります。http://jsfiddle.net/aWPKp/1/

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