2016-02-16 88 views
0

我正在嘗試編寫一個小腳本,所以無論何時用戶在網頁上輸入一些文本,它都會立即得到我的價值。不幸的是,當我嘗試測試它時,Keyup()JQUERY函數沒有返回任何值。鍵值輸入沒有獲得價值

$(document).ready(function() { 
    $(document).keyup(function() { 
     var command = $(this).val(); 
     alert(command); 
    }); 
}); 

該警報顯示沒有任何文字,我不確定爲什麼?

+1

嘗試這種情況:'$(文件)。就緒(函數(){ $(:輸入).keyup(函數(){ VAR命令= $(本).VAL(); 警報(命令); }); });' – Rayon

+0

我試圖將它附加到文檔,因爲我不想讓它們「必須」鍵入到文本框中以便知道它們正在輸入的內容(如果這是有道理的) – ConorReidd

回答

3

您的選擇是$(document)它沒有價值。
只有當您的選擇器是任何輸入時,您才能獲得價值。
如果要通過用戶獲得字符類型,然後嘗試,因爲遵循

$(document).keyup(function(e) { 
    var command = String.fromCharCode(e.which); 
    alert(command); 
}); 
+0

按我想要的那樣工作。萬分感謝。 – ConorReidd

0

我已經修改了代碼片段

$(document).ready(function() { 
$(document).keyup(function(e) { 
    var command = $(e.target).val() 
    alert(command); 
}); 
}); 

$(本)一直保持你在哪裏結合是事件文件在你的情況下,但e.target提供你正在使用你的事件的當前元素。

+0

同樣的問題。警報中沒有返回任何內容(); – ConorReidd

+0

這僅適用於所有輸入框。所以你想檢測任何用戶在鍵盤上按下? – Diljohn5741

2

試試看看這個代碼。

<!DOCTYPE html> 
    <html> 
    <head> 
     <title></title> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> 
    </head> 
    <body> 
    <script type="text/javascript"> 
    $(document).ready(function() { 
     $("input").keyup(function() { 
      var command = $(this).val(); 
      alert(command); 
     }); 
    }); 
    </script> 
    <input type="text"> 
    </body> 
    </html> 
-1
  1. 有不同的方法來解決它。這就像雙向約束。

  2. 您可以使用jQuery

  3. 其他的KEYUP/KEYDOWN事件發揮聰明人,你可以喜歡Angulr Js已建成的雙向綁定功能。