2014-05-23 48 views
0

我有一個text area,那裏我可以輸入數據。在keypress我必須調用ajax請求。 在keypress我檢查密鑰是否是enter key(密鑰代碼= 13),然後ajax請求應該調用。在按鍵事件ajax請求不起作用

我的代碼是

$(document).keypress(function(e) 
    { 
    var msg = $("#text").val(); 
    var user = $("#huname").val(); 
    if(e.which == 13) 
    { 
     $.post("chatAjax.php",{user:user,msg: msg}, function(data) 
     { 
     alert(data); 
     }); 
     } 
    }); 

我的AJAX頁面

$user = $_POST['user']; 
$msg = $_POST['msg']; 
echo $user"<br>"$msg; 

正如我告訴如果我按enter keyajax page應該叫,但現在當我按下enter key還是我我在新行textarea.

+0

你應該在'#text textarea'上添加'keypress'事件。 – Girish

+0

感謝您的意見和答案,但仍然無法正常工作。如果我刪除了ajax請求並在輸入密鑰的keypres事件中進行了簡單警報,它就可以工作。所以我認爲問題在於我的ajax調用... – next2u

回答

0

最後我明白了。我的代碼有兩個問題。

1)AJAX頁面使用此

$("textarea").keypress(function(event) 

代替

$(document).keypress(function(event) 

2)我錯過了concatenation (.) operator

echo $user."<br>".$msg; /*right*/ 

,但我用這個和是錯誤的

echo $user"<br>"$msg; /*wrong*/ 

現在它工作正常..

0
$(document).keypress(function (event) { 
    var keycode = (event.keyCode ? event.keyCode : event.which); 
    if (keycode == '13') { 
     callAjaxFunction(); 
     event.preventDefault() 
    } 

}); 

希望它可以幫助

0

Ajax調用之前加入這一權利:

event.preventDefault(); 

正如其名稱所示,它會阻止按鍵事件的默認操作。