文書の過去の版を表示しています。
Prevent paste operation in text-field
ユーザー登録画面とかでパスワードとかメールの確認の貼り付け(Ctrl+V)を防止したい時があると思う。
今回はその場面で役立つようなjavascriptコードを紹介する。
Test page
<html> <head> <SCRIPT TYPE=“text/javascript” SRC=“http://ajax.googleapis.com/ajax/libs/dojo/1.3/dojo/dojo.xd.js”></SCRIPT> <script type=“text/javascript”> <!–
function onKeypress(e) { if (e != null) { //Firefox, NN keycode = e.charCode; ctrl = typeof e.modifiers == 'undefined' ? e.ctrlKey : e.modifiers & event.CONTROL_MASK; } else { // Internet Explorer keycode = event.keyCode; ctrl = event.ctrlKey; } // キーコードの文字を取得 keychar = String.fromCharCode(keycode).toUpperCase(); if (ctrl) { if (keychar == "V") { alert("貼り付け禁止!!"); // イベントの上位伝播を防止 if(e!=null)[ e.preventDefault(); e.stopPropagation(); }else{ event.returnValue = false; event.cancelBubble = true; } } }
} dojo.addOnLoad(function(){
dojo.connect(dojo.byId("confirmPass"),"keypress", function(e){ onKeypress(e);});
}); –> </script> </head> <body> <form action=“#”> <table border=“0”> <tr><td>ID :</td><td><input type=“text” size=“10” id=“userid”></td></tr> <tr><td>pasword :</td><td><input type=“password” size=“10” id=“password”></td></tr> <tr><td>confirm :</td><td><input type=“password” size=“10” id=“confirmPass”></td></tr> </table> </form> </body> </html> ===== reference ===== - http://programming-magic.com/file.php?id=61 : 各ブラウザのキーに対するキーコード表 - http://javascriptist.net/docs/pract_keyboard_event.html : クロスブラウザでのJavaScriptキーボードイベントの扱い方