11

textinputs value = String(event.target.value || "")keyup/keydownイベントが発生したときに遭遇しました。

しかしevent.target.value、文字列でない場合はわかりませんか?これは可能ですか?他の何かが?として渡されるのはevent.target.valueいつですか?

4

2 に答える 2

12

event.target要素が入力型要素でない場合、プロパティvalueはありません。たとえば、 a をクリックするdivevent.target、 を持たない div になりますvalue

値が の場合は常に値 (常に文字列 または) または空の文字列になるため、ラップevent.target.value || ''する必要はありません。String()undefinedundefined

デモンストレーションについては、このフィドルを参照してください。

于 2013-02-06T18:22:52.997 に答える
0

そのステートメントでここで何が起こっているのかを分析すると役立つ場合があります。重要な部分は、event.target.value || ""String() が評価される前に、最初に評価されることです。

event.target.valueつまり、 null または未定義かどうかを確認しています。IS null または未定義の場合、空白文字列""がデフォルト値として使用されます。このステートメントの結果は、String() に渡されます。

于 2013-02-06T18:22:23.097 に答える