2
我的網站上有一種「翻譯」程序,它使用即時搜索功能。我有一個textarea即時搜索功能是背後的一個按鍵
<textarea name="text" onkeydown="searchq();"></textarea>
它運行SEARCHQ()函數
function searchq() {
var searchTxt = $("textarea[name='text']").val();
$.post("translate.php", {text: searchTxt}, function(output){
$("#translated").html(output);
});
}
,它發送的每個單詞的translate.php
if(isset($_POST["text"])){
$words = explode(' ',$_POST['text']);
$i = 0;
foreach($words as $word){
// performs transformations on the words
$output = $word . " ";
echo($output);
$i++;
}
}
但是,如果你嘗試一下我的網站http://saaa.me/MattSpeak.html,你可以清楚地看到,如果你輸入「y」,什麼都不會顯示,只有當你輸入下一個字母或空格時,纔會顯示「y」。即時翻譯過程似乎是一個字符落後。這是什麼造成的?(商標符號和「呃」字的結尾是我添加的作爲「翻譯」的一部分的東西)
我有一個輕微的想法,爲什麼這不能正常工作,但沒有線索如何解決它。幫助將不勝感激。
我剛剛發現的onkeyup也適用 –
@ AndrewHu:*可能*。當然,如果用戶右鍵單擊並粘貼,你將不會得到'keyup'事件。在這種情況下,你*將會*得到一個'input'事件(在支持它的瀏覽器上)。 –
哦,的確如此,尤其是因爲我的很多朋友都表示他們想要將選擇的文本粘貼到其中。看起來我會使用你的方法。 –