- PR -

DropDownListでホイールのスクロール禁止

1
投稿者投稿内容
His
会議室デビュー日: 2006/02/09
投稿数: 4
投稿日時: 2006-02-09 10:04
WebアプリケーションでDropDownListを使用しているのですが、
マウスホイールでページをスクロールする際、マウスカーソルが
DropDownListの上にあると内容が変更されてしまいます。

これはブラウザの通常の動作なのですが、誤入力の原因となって
いるためホイールでのDropDownListのスクロールを禁止したいの
です。

過去ログを探してみたのですが見つからず、書き込ませていただ
いた次第です。

その他、誤入力を回避する方法などがあればご教授ください。
よろしくお願いいたします。


動作環境:Windows Server 2003 上のIIS 6.0
開発環境:VisualStudio.NET 2003のASP.NET
His
会議室デビュー日: 2006/02/09
投稿数: 4
投稿日時: 2006-02-09 10:23
自己レスです。内容が間違っておりました、すみません。

×マウスカーソルが DropDownListの上にあると内容が変更されてしまいます。
○フォーカスが DropDownListの上にあると内容が変更されてしまいます。

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-09 11:48
JavaScript しかないでしょうけど、こんな感じ?

コード:

    document.attachEvent("onmousewheel", cancelEvent);

    function cancelEvent(e){
        e.preventDefault? e.preventDefault() : e.returnValue = false;
    }


_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
His
会議室デビュー日: 2006/02/09
投稿数: 4
投稿日時: 2006-02-09 12:19
じゃんぬねっとさん、お返事ありがとうございます。
早速やってみたところ、確かにDropDownListのスクロールは禁止
されました!

が、ページ全体のスクロールも禁止されてしまいました^^;


現在やろうとしているのは、DropDownListからフォーカスを
外す、もしくは他のコントロールにフォーカスを移すことです。

コントロールの数が多いため、できるだけ名前を指定せずに
フォーカスの移動をしたいのですが…

window.blur()ではウィンドウ自体が後ろに回ってしまいます。
DropDownListの親であるFormにfocus()しても上手くいきません。

もう少しチャレンジしてみます。
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2006-02-09 12:24
DropDownListのonmousewheelクライアントイベントを殺す

コード:

DropDownList1.Attributes["onmousewheel"] = "return false;";




[ メッセージ編集済み 編集者: todo 編集日時 2006-02-09 12:25 ]
His
会議室デビュー日: 2006/02/09
投稿数: 4
投稿日時: 2006-02-09 12:47
todoさん、お返事ありがとうございます。

とりあえず1つのDropDownListでやってみたところ、
期待したとおりの動きとなりました。

この方法で個別に禁止すれば上手くいきそうです。

お二人に感謝です!
1

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