2016-05-11 1 views
2

私は答えhereを読んでいます。それらはすべて私が理解できない似たようなテーマに従っているように見えます。私はそれを試してみるのに十分なことはわかりません。javascript関数の戻り値に基づいてHTMLのテキスト入力を制限する方法はありますか?

これらのパターンはすべて、onkeypressの返信somefunctionのパターンを持ち、somefunctionは、多くの場合ブール値を返します。

実際の制限を行っている部分はわかりません。戻り値?ウェブブラウザ? HTML?

どのようにですか?

これは意味がありません。私はここでかなりjavascriptの私の理解でひっくり返っています。私は何をしているのかを知ることができません。 falseまたはtrueを返すのはなぜですか?

誰かが私を正しい方向に向けることができれば、とても感謝しています。私が見つけた多くのリソースは、配列と変数の宣言方法のどちらかであるか、またはソリューションに直接スキップします。私はこれらのソリューションで何が起きているのか把握しようとしています。

<input type="text" onkeypress="return somefunction()"> 

<script> 
    function somefunction() 
    { 
    return false; 
    } 
</script> 

<input type="text" onkeypress="return somefunction2()"> 

とJS

function somefunction2() 
{ 
    return false; 
} 

二、なぜそれがなく、添付jsfileと、スクリプトタグ内だjsfiddleで、この作品:ここ

は、パターンですか?

+1

は、本質的にブロック入力れるonkeypressからfalseを返す:

はここにいくつか、さらに読書です。これはHTMLの動作です。なぜそれがインラインで動作するのですが、参照ファイルでは動作しません。 – TomSlick

答えて

4

JavaScriptイベントハンドラは、デフォルトのブラウザ動作が実行される前に起動します。イベントハンドラ内にfalseを返すと、既定の動作が発生しなくなります。また、イベントがイベントチェーンを祖先要素にバブリングするのを止めます。あなたの例では、テキスト入力にフォーカスがある間にキーを押すと、そのキーの文字が入力値に追加されなくなります。それは、イベントをキャンセルするためWhat's the difference between event.stopPropagation and event.preventDefault?

+0

私はあなたの答えから、テキストのことでは、 "デフォルトのブラウザの振る舞い"は、キーボードの入力がテキストのものにフォーカスしている間に、テキストのものでレンダリングできるようにすることであると解釈しています。それは遠い?それは防止されているデフォルトの動作ですか?また、デフォルトのブラウザの振る舞いは、addEventListener()と機能的に同じように動作しますか?ありがとうございました。 – r12

+1

絶対に。テキスト入力をクリックまたはタブイングして入力を開始した場合、予想される動作は、これらのキーストロークがフィールド内に表示されることです。これは、キーを押したときのデフォルトのブラウザ動作です。 キーを押すと、JavaScriptの「keypress」イベントも発生します。実際には 'keydown'イベントが発生し、キーが押されている間は' keypress'、解放されると 'keyup'イベントが続きます。 'keypress'イベントリスナーがテキスト入力に追加された場合、指定された関数は、入力にフォーカスがあり、キーが押されるたびに実行されます。 – SimianAngel

関連する問題