- PR -

javascriptで貼り付け防止できますか。(質問変更)

投稿者投稿内容
タラン
大ベテラン
会議室デビュー日: 2004/03/17
投稿数: 138
投稿日時: 2004-06-07 13:24
いつもお世話になっております。
(質問を変更しちゃってごめんなさい。)

HTMLでメールアドを二つのテキストフィールドに入力して二つが同じかどうかなどを確認して送信したいですが

一番目のテキストフィールドは貼り付けがOKですが
2番目のテキストフィールドは貼り付け機能ができないようにしたいです。

できるんでしょうか。

よろしくお願いします。




[ メッセージ編集済み 編集者: ヒデミ 編集日時 2004-06-07 13:45 ]
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2004-06-07 13:39
できません
永井和彦
ぬし
会議室デビュー日: 2002/07/03
投稿数: 276
お住まい・勤務地: 東京都
投稿日時: 2004-06-07 13:45
引用:

一番目のテキストフィールドはコピーでOKですが
2番目のテキストフィールドはコピー機能ができないようにしたいです。

できるんでしょうか。



2番目のテキストフィールドのOnFocusでクリップボード内容の破棄(空白で上書き)を実行してやれば実現出来るのではないかと思います。
t2
常連さん
会議室デビュー日: 2002/02/11
投稿数: 36
お住まい・勤務地: 茨木-藤沢
投稿日時: 2004-06-07 13:56
なんかなぁ...

引用:
2番目のテキストフィールドのOnFocusでクリップボード内容の破棄(空白で上書き)を実行してやれば実現出来るのではないかと思います。



使用者の想定外のところでClipboardをいじられるのも辛いと思います
業務システムなら許されるのかも知れませんが(あるいはクライアントの意志?)

とりあえず、起動時にClipboardを消してしまう汎用辞書アプリケーションがあり
タコな仕様だと、常々思ってます
--
t2
Cookie
ベテラン
会議室デビュー日: 2002/11/05
投稿数: 59
投稿日時: 2004-06-07 14:02
2番目のテキストボックスのonKeyDown(onKeyPress)イベントで
押されたキーを判定し、Ctrl+Vが押された時だけfalseを返して
エスケープするのはどうでしょう?
永井和彦
ぬし
会議室デビュー日: 2002/07/03
投稿数: 276
お住まい・勤務地: 東京都
投稿日時: 2004-06-07 14:07
引用:

t2さんの書き込み (2004-06-07 13:56) より:
なんかなぁ...

引用:
2番目のテキストフィールドのOnFocusでクリップボード内容の破棄(空白で上書き)を実行してやれば実現出来るのではないかと思います。



使用者の想定外のところでClipboardをいじられるのも辛いと思います
業務システムなら許されるのかも知れませんが(あるいはクライアントの意志?)

とりあえず、起動時にClipboardを消してしまう汎用辞書アプリケーションがあり
タコな仕様だと、常々思ってます
--
t2



「できますか?」と聞かれましたので、「(ブラウザによっては)できる」と答えただけですので……。私も個人的にはクリップボードを黙っていじられるのはあまり好ましくないと思います。
まあ、ちょっと応用すれば「どこかに内容を退避させておいてOnBlurで(クリップボードの内容が空白であれば)戻す」ですとか考えられなくもないですが、あまりエレガントな実装(解)は無いような気がします。

「画面に一筆『確認のためですので、コピー&ペーストではなく再度ご入力ください』と書く」というのがベストなのではないかと思います。
Cookie
ベテラン
会議室デビュー日: 2002/11/05
投稿数: 59
投稿日時: 2004-06-07 14:16
<INPUT type="text" name="address1">
<INPUT type="text" name="address2"
 onKeyDown="if(event.keyCode==86)return false;">

Windows版のIE6ですが、一応出来ました。
すなめり
常連さん
会議室デビュー日: 2003/01/29
投稿数: 37
お住まい・勤務地: 横浜
投稿日時: 2004-06-07 14:24
引用:

Cookieさんの書き込み (2004-06-07 14:16) より:
<INPUT type="text" name="address1">
<INPUT type="text" name="address2"
 onKeyDown="if(event.keyCode==86)return false;">

Windows版のIE6ですが、一応出来ました。



これだと、ただの「v」の入力も抑止してしまいませんか?
if文は
if(event.ctrlKey==true && event.keyCode==86)
の方がいいかもしれません。

スキルアップ/キャリアアップ(JOB@IT)