2013-05-25 106 views
0

到目前爲止,我正在使一個ajax登錄表單取得很大進展,這要感謝迄今爲止一些用戶在堆棧流程中。Ajax發送兩次HTTP請求?

現在,當我檢查所有字段,如果它響應輸入被按下,它工作正常,除非我選中提交按鈕,它根據Chrome網絡選項卡提交數據兩次。

我認爲它正在執行.click函數,就像.keycode函數一樣。

如何在代碼中說如果keycode輸入爲false,並且我單擊按鈕執行函數,或者如果它的true不執行.click函數。

$(document).ready(function() { 
    $('#field').keyup(function (e) { 
     if(e.keyCode == 13) { 
      //If enter is pressed vailidate the form 
      $.ajax({ 
       url: 'ajax/check.php', 
       type: 'post', 
       data: { 
        method: 'fetch' 
       }, 
       success: function (data) { 
        $('.chat .messages').html(data); 
       } 
      }); 
     }; 
    }); 
    $('#submit').click(function() { 
     alert('Do something here this is just a test'); 
    }); 
}); 
+0

你在說什麼功能? –

回答

0

只是增加了preventDefault並返回false像的KEYUP功能:

$('#field').keyup(function (e) { 
    if(e.keyCode == 13) { 
     //If enter is pressed vailidate the form 
     e.preventDefault(); 
     $.ajax({ 
      url: 'ajax/check.php', 
      type: 'post', 
      data: { 
       method: 'fetch' 
      }, 
      success: function (data) { 
       $('.chat .messages').html(data); 
      } 
     }); 
    return false; 
    };  
}); 

這將防止從形式,當用戶按Enter鍵提交。

+0

爲什麼要防止默認行爲,如果你總是返回false? –

+0

@roasted你寫。只有在按下回車鍵時才應該返回false。更新了我的答案。非常感謝pointint。 – akhilless

+0

還在工作。 不知道我是否足夠解釋,但我有一個快照,應該有助於http://tinypic.com/view.php?pic=opyd60&s=5 – Spudster