

* onkeypress 属性 (HTML, XHTML 1)

[1] [[HTML]] のほとんどの[[要素型]]で用意されている 
[DFN[[CODE(HTMLa)[onkeypress]] 属性]]は、[[要素]]の上で[[鍵]]が押され、
離された時に発生する[[事象]]に関する[[内在事象]]属性です。

[2] 仕様書:
- [[HTML 4]]
-- [CODE(HTMLa)[onkeypress]] 属性
<IW:HTML4:"interact/scripts.html#adef-onkeypress">




** 代替

[3] 内在事象属性は[[表現と構造の分離]]の原則に反するので、
好ましくないと考える人もいます。また、 [[DOM 0]]
に基づく古い設計です。

代わりに、 [CODE(HTMLe)[[[script]]]] 要素などにより関連付けたスクリプト内で
[[DOM 2]] 以上の[[事象]]に関するメソッド等が利用できます。
DOM 水準 3 はこの属性に対応する
DOM の事象 [CODE(DOM)[[VAR[ev:]][[textInput]]]] を用意しています。

[9]
asa
([[aa]] [a] [WEAK[2004-11-15 02:26:21 +00:00]])

[[#comment]]


** 属性値

[4] この属性の値は [CODE(SGML)[%[[Script]]]] です。 [[SGML]]
的には [CODE(SGML)[[[CDATA]]]] です。
自称が発生したときに実行するスクリプトの code
を記述します。[[スクリプト言語]]は、
[CODE(HTTP)[[[Content-Script-Type]]]] によります。

[5] この属性は省略可能です。

[[#comment]]


** 他との関係

[6] この属性に対応する DOM の事象は [CODE(DOM)[[VAR[ev:]][[textInput]]]]
です。そちらもあわせてごらんください。

[7] 鍵が押された時には [CODE(HTMLa)[[[onkeydown]]]] 
事象が、離された時には [CODE(HTMLa)[[[onkeyup]]]]
事象が発生します。

[[#comment]]


** メモ

[[#comment]]


* メモ

[10] [CITE@ja[あんちもん2.Lab: onkeypress、乱用禁止!]] ([TIME[2009-01-04 18:34:54 +09:00]] 版) <http://www.antimon2.atnifty.com/2007/04/no-abuse_of_onkeypress.html>

[11] [CITE@ja[あんちもん2.Lab: 【提案】onkeypressの正しい併用の仕方!]] ([TIME[2009-01-04 18:37:20 +09:00]] 版) <http://www.antimon2.atnifty.com/2007/04/correct_onkeypress.html>

[8] [CITE@en[DOM3 Key events]] ([[Oliver Hunt]] 著, [CODE[2007-08-02 06:42:52 +09:00]] 版) <http://lists.w3.org/Archives/Public/public-webapi/2007Aug/0007.html>

[12] [CITE@en[DOM3 Key events]] ([[Oliver Hunt]] 著, [CODE[2007-08-02 06:42:52 +09:00]] 版) <http://lists.w3.org/Archives/Public/public-webapi/2007Aug/0007.html>

[13] [CITE@en[DOM3 Key events]] ([[Oliver Hunt]] 著, [TIME[2007-08-02 06:42:52 +09:00]] 版) <http://lists.w3.org/Archives/Public/public-webapi/2007Aug/0007.html>

[14] [[フォーム制御子]]で [[Enter]] を押すと行われる[[既定提出ボタン]]による[[フォーム提出]]を中止しようとして
[CODE(HTMLa)@en[[[onkeypress]]]] を [CODE(JS)@en[[[return]] [[false]]]] でとめようとしても、 
[[WinIE]] ではうまくいきません。
([[Firefox]] や [[Opera]] では成功します。) どのブラウザでも中止させるには
[CODE(DOMa)@en[[[onsubmit]]]] をとめるのがいいです。




[15] [CITE@ja[近いうちに非表示キーが keypress イベントを発生させなくなります (影響あり) | Firefox サイト互換性情報]]
([TIME[2018-05-14 07:48:46 +09:00]])
<https://www.fxsitecompat.com/ja/docs/2018/non-printable-keys-will-soon-stop-firing-keypress-event/>