* onchange 属性 (HTML, XHTML 1)
[1] [[HTML]] の [CODE(HTMLe)[[[input]]]] 要素、
[CODE(HTMLe)[[[select]]]] 要素、 [CODE(HTMLe)[[[textarea]]]] 要素の
[DFN[[CODE(HTMLa)[onchange]] 属性]]は、
[[制御子]]が入力[[焦点]]を失った時で、
しかも値が変更されていた時に発生する[[事象]]に関する[[内在事象]]属性です。
[2] 仕様書:
- [[HTML 4]]
-- [CODE(HTMLa)[onchange]] 属性
[9]
aaaa
([[aaa]] [aaa] [WEAK[2004-11-07 19:08:43 +00:00]])
[10]
HTML 4 DTD の[[注釈]] (参考) には
[Q[the element value was changed]]
と説明があります。
([[名無しさん]] [sage])
[[#comment]]
** 代替
[3] 内在事象属性は[[表現と構造の分離]]の原則に反するので、
好ましくないと考える人もいます。また、 [[DOM 0]]
に基づく古い設計です。
代わりに、 [CODE(HTMLe)[[[script]]]] 要素などにより関連付けたスクリプト内で
[[DOM 2]] 以上の[[事象]]に関するメソッド等が利用できます。
DOM 水準 2 や DOM 水準 3 はこの属性に対応する
DOM の事象 [CODE(DOM)[[VAR[ev:]][[change]]]] を用意しています。
[[#comment]]
** 属性値
[4] この属性の値は [CODE(SGML)[%[[Script]]]] です。 [[SGML]]
的には [CODE(SGML)[[[CDATA]]]] です。
自称が発生したときに実行するスクリプトの code
を記述します。[[スクリプト言語]]は、
[CODE(HTTP)[[[Content-Script-Type]]]] によります。
[5] この属性は省略可能です。
[[#comment]]
** 他との関係
[6] この属性に対応する DOM の事象は [CODE(DOM)[[VAR[ev:]][[change]]]]
です。そちらもあわせてごらんください。
[[#comment]]
** 例
[7] 値変更時に確認を行う例 (JavaScript) [SRC[HTML 4 18.2.3]]
[PRE(HTML)[
]PRE]
[8] 値変更時に有効・無効を切替る例 (VBScript) [SRC[HTML 4 18.2.3]]
[PRE(HTML)[
]PRE]
HTML 4 仕様書に載っていた例ですが、 VBScript
では [[VB]] と同じ、手続き名による事象取扱器に関する例示を行いたかったのでしょうか。
値変更時に有効・無効を切替る例 (Tcl) [SRC[HTML 4 18.2.3]]
[PRE(HTML)[
]PRE]
VBScript と同じことを Tcl で書いた例ですが、
Tcl では登録が必要なようです (JavaScript の
[CODE(JS)[edit1.onchange]] への代入に相当か)。
[[#comment]]
** メモ
[11]
[CITE[Bug 126379 - Select onChange not called using down arrow key]]
[CITE[Error in HTML 4.01 specification of 'onchange' event from Josh Purinton on 2003-05-09 (www-html-editor@w3.org from April to June 2003)]]
[CITE[Re: Error in HTML 4.01 specification of 'onchange' event]]
([[名無しさん]])
[[#comment]]
* メモ