差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| study:javascript:dojo:prevent_paste [2009/07/08 02:27] – banana | study:javascript:dojo:prevent_paste [2010/03/19 15:15] (現在) – banana | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| - | ====== Prevent paste operation in text-field | + | ====== Prevent paste operation in textfield |
| ユーザー登録画面とかでパスワードとかメールの確認の貼り付け(Ctrl+V)を防止したい時があると思う。\\ | ユーザー登録画面とかでパスワードとかメールの確認の貼り付け(Ctrl+V)を防止したい時があると思う。\\ | ||
| 今回はその場面で役立つようなjavascriptコードを紹介する。 | 今回はその場面で役立つようなjavascriptコードを紹介する。 | ||
| + | {{keywords> | ||
| + | |||
| + | ===== code snippet ===== | ||
| + | <code javascript> | ||
| + | <script type=" | ||
| + | <!-- | ||
| + | function onKeypress(e) { | ||
| + | var keycode = (e.which)? e.which: | ||
| + | if (e) { // Mozilla(Firefox, | ||
| + | ctrl = typeof e.modifiers == ' | ||
| + | } else { // Internet Explorer | ||
| + | ctrl = event.ctrlKey; | ||
| + | } | ||
| + | |||
| + | // キーコードの文字を取得 | ||
| + | keychar = String.fromCharCode(keycode).toUpperCase(); | ||
| + | |||
| + | if (ctrl) { | ||
| + | if (keychar == " | ||
| + | alert(" | ||
| + | // イベントの上位伝播を防止 | ||
| + | if(e){ | ||
| + | | ||
| + | | ||
| + | }else{ | ||
| + | | ||
| + | | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | | ||
| + | } | ||
| + | dojo.addOnLoad(function(){ | ||
| + | dojo.connect(dojo.byId(" | ||
| + | }); | ||
| + | //--> | ||
| + | </ | ||
| + | |||
| + | </ | ||
| ===== Test page ===== | ===== Test page ===== | ||
| 行 10: | 行 49: | ||
| <!-- | <!-- | ||
| function onKeypress(e) { | function onKeypress(e) { | ||
| - | | + | var keycode = (e.which)? e.which: |
| - | if (e != null) { //Firefox, NN | + | if (e) { // Mozilla(Firefox, NN) and Opera |
| - | keycode = e.charCode; | + | ctrl = typeof e.modifiers == ' |
| - | ctrl = typeof e.modifiers == ' | + | |
| - | // イベントの上位伝播を防止 | + | |
| - | // | + | |
| - | // | + | |
| - | | + | |
| } else { // Internet Explorer | } else { // Internet Explorer | ||
| - | | + | ctrl = event.ctrlKey; |
| - | | + | |
| - | // イベントの上位伝播を防止 | + | |
| - | | + | |
| - | // | + | |
| } | } | ||
| 行 32: | 行 62: | ||
| if (keychar == " | if (keychar == " | ||
| alert(" | alert(" | ||
| - | e.preventDefault(); | + | // イベントの上位伝播を防止 |
| - | e.stopPropagation(); | + | if(e){ |
| + | e.preventDefault(); | ||
| + | e.stopPropagation(); | ||
| + | }else{ | ||
| + | | ||
| + | | ||
| + | } | ||
| } | } | ||
| } | } | ||
| 行 56: | 行 92: | ||
| ===== reference ===== | ===== reference ===== | ||
| - | - [[http:// | + | - [[http:// |
| - | - [[http:// | + | - [[http:// |