this を用いたオブジェクト参照
JavaScript にはカレントオブジェクトを参照するメソッド内で使用できる特殊なキーワード、this があります。例えば、あるオブジェクトの value プロパティの妥当性を確認する validate
という関数があるとします。関数にはそのオブジェクトと、上限および下限の値を渡します。
function validate(obj, lowval, hival) { if ((obj.value < lowval) || (obj.value > hival)) alert("Invalid Value!"); }
各フォーム要素の onchange
イベントハンドラにおいて validate
を呼び出します。this を使うことで form
要素を渡すことができます。次の例をご覧ください。
<input type="text" name="age" size="3" onChange="validate(this, 18, 99)">
一般に this
はあるメソッド内でそのメソッドを呼び出したオブジェクトを参照します。
form
プロパティと組み合わせることで、this
はカレントオブジェクトの親のフォームを参照できます。次の例では、myForm
というフォームに Text
オブジェクトとボタンが格納されています。ユーザがボタンをクリックすると、Text
オブジェクトの値にフォーム名がセットされます。ボタンの onclick
イベントハンドラは this.form
を利用して親のフォームである myForm
を参照します。
<form name="myForm"> <p><label>Form name:<input type="text" name="text1" value="Beluga"></label> <p><input name="button1" type="button" value="Show Form Name" onclick="this.form.text1.value=this.form.name"> </p> </form>