inputエリアにコピペさせないようにする
2007年09月27日
仕事でやったんですが、inputエリアにコピペさせない方法。
javascriptを使います。
一応、IE6,7でもFirefoxでも動くはず。
用途としては、メールアドレスやパスワード欄を2つ設けていて、間違いないように2回入力させたいときとか。
僕はいつもコピペしますが、間違ったアドレスなんかをコピペされても困る。ってことで。
まずはjavascriptですが、
function okdown(event) {
if(document.all) {
if((window.event.keyCode == 86 && window.event.ctrlKey) || (window.event.keyCode ==45 && window.event.shiftKey)) {
return false;
}
}else{
if((event.which == 86 && event.ctrlKey) || (event.which == 45 && event.shiftKey)) {
return false;
}
}
}
function onkdn(target) {
target.onkeydown = okdown;
}
これでHTMLのほうは、
<form name="nocopipe" method="post">
<p><input name="email" id="email" type="text">e-mail</p>
<p><input name="email2" id="email2" type="text" oncontextmenu="return false;" onkeydown="onkdn(this)">確認用email</p>
</form>
となります。
やってることは、確認用emailのinputにキーが押されたら、そのキーが「Ctrl+V」か「Alt+Insert」だったら、onkeydownにfalseを返しています。
(「Alt+Insert」でもできるって知らんかった…)
あとは、oncontextmenu="return false;"で、右クリックメニューを出さないようにしてます。
IEだけに限るのであれば、もっと簡単で、oncopyとかonpasteとかにfalseを返してあげればコピペできません。
でも、やっぱこれって使い道あるのかな…。
スポンサードリンク
タグ:
Javascriptトラックバック
このエントリーのトラックバックURL:http://www.sriproot.net/mt/mt/mt-tb.cgi/209