2016-06-13 1 views
0

私が(最初に)文字を押すと、警告よりも空の値が印刷されます... どうやってできますか?私は...keydown()を使用すると、最初の文字の後に値が空であることが警告されるのはなぜですか?

$('#search-vulc').on('keydown', function() { 
    var textinsert = ($(this).val()).toLowerCase(); 
    alert(textinsert); 
}); 

を理解していない。ここ

もjsfiddle例があり...初めてのプレスがあるとき、私はまた、最初の文字を印刷する方法を教えてください: https://jsfiddle.net/06xg4c78/1/

私の英語は申し訳ありませんが、アドバイスをいただきありがとうございます。代わりに

+6

値が更新される前にkeydownイベントが発生した場合は、 'keyup'または' input'イベントを使用します。 ead –

+0

console.logを使用してデバッグします。アラートはありません – j08691

+0

keuypイベントを使用します。 –

答えて

1

使用keuypイベント:

新しい文字が追加される前に、keypress eventsが発射されるためです要素の値(したがってfiの値最初の文字が追加される前にrst keypress eventが実行されますが、値はまだ空です)。代わりにkeyupを使用してください。これは、文字が追加された後に発生します。あなたが​​機能を使用する場合、DOMはそれが値が入力されますので、あなたが鍵を去るときに、イベントを発生させ、入力値

使用keyupを取得する前に

$('#search-vulc').on('keyup', function() { 
    var textinsert = ($(this).val()).toLowerCase(); 
    alert(textinsert); 
}); 
+0

keypownはkeydownではありません –

+1

@Borja私はそうは思わない、文字の前にいくつかのアクションを実行したい使用キー入力を入力してください。入力後に何らかのアクションを実行する場合は、キー操作を使用してください –

0

使用keyup

$('#search-vulc').on('keyup', function() { 
 

 
    var textinsert = ($(this).val()).toLowerCase(); 
 
    alert(textinsert); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 

 
<input type="text" size="150" style="width: 150px;" name="qu" id="search-vulc">

更新フィドル:https://jsfiddle.net/06xg4c78/2/

0

は、それが動作します

$('#search-vulc').on('keyup', function() { 
 
    var textinsert = ($(this).val()).toLowerCase(); 
 
    alert(textinsert); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<input type="text" size="150" style="width: 150px;" name="qu" id="search-vulc">

関連する問題