2012-03-15 84 views
2

我有一個按鍵事件後執行的功能:獲取textarea的值一次鍵按下

$("#txtarea").keypress(function(){ 
    alert(document.getElementById("txtarea").value); 
}); 

我希望每一個按鍵後返回textarea的新文本,以便它可以simultanuously在其他使用javascript函數。

這個腳本的問題是,一旦按下了一個鍵,該功能將顯示「」空字符串。

預先感謝您。

回答

2

的按鍵只是在分配的值之前被觸發。 像其他事件(點擊,提交等」 ...)所以你可以取消默認行爲和‘東西’

$('#txtarea').keypress(function(event) { 
    return false; // this will disable the new value assignment 
}); 

你可以找到與單擊event.which什麼按鈕,並使用它。

例子:

<input id="txtarea" />​ 

$('#txtarea').keypress(function(e){ 
    var value = this.value; 
    alert(value); 
    alert(value + String.fromCharCode(e.which)) 
})​; 

JSFiddle DEMO

您還可以使用keyup事件,但它也有其他含義和用法比keypress
請注意!

+0

謝謝你的朋友,你的回答有用,但我已經使用了密碼(我知道它是什麼)...再次感謝你+1 :))) – SmootQ 2012-03-15 16:43:09

+1

那是最好的解決方案 – SmootQ 2012-03-15 16:43:26

4

嘗試使用keyup代替keypress

+1

'keyup'具有其他的意義和用法,比'keypress'。 – gdoron 2012-03-15 16:33:36

+0

坦克你我的朋友,這也已經很有用了。+1 – SmootQ 2012-03-15 16:44:14

2

您可以使用此代碼,請注意KEYUP而不是按鍵,因爲這意味着鍵已經被添​​加到textarea的:

​$('#txtarea').keyup(function() { 
    alert(this.value); 
});​​​​​​​ 

而且,沒有必要做的document.getElementById,只需使用this.value

http://jsfiddle.net/A8XxK/1

+1

'keyup'有其他的含義和用法比'keypress'。 – gdoron 2012-03-15 16:34:00

+0

謝謝你的朋友,+1 ...這很有用 – SmootQ 2012-03-15 16:43:50