10

私はドロップダウン部分としてDropDownListとして使用したいカスタムテーブルを持っています。DropDownListで開くことからのドロップダウンを防止するにはどうすればよいですか?

Table

理想的には、ユーザーがDropDownListをクリックすると、それは、カスタム・テーブルの代わりに、ダウン通常のドロップが表示されるはずです。 DropDownListコントロールを無効にしなくても、ドロップダウンリストが開いてしまうのを防ぐのは簡単だと思いましたが、そのようには見えません。

無効にしないでDropDownListを開くのを防ぐ簡単な方法はありますか?

編集:これは組み込みIE 7のWebブラウザのために働く必要があり、およびe.preventDefault()

+2

ドロップダウンの内容をカスタマイズしている場合は、よくテキストボックスを使用して現在選択されているアイテムを表示し、下矢印アイコンがドロップダウンに似たボタンを使用するだけです。 – mellamokb

+0

@mellamokb私はもっと簡単な方法があると思っていました...実際に選択された値はUTCの日付であるため、表示日はユーザのタイムゾーンに基づいていますので – Rachel

+0

あなたは 'preventDefault'または' preventDefault'で 'onclick'イベントを試しましたか?' SelectedValue'と 'DisplayValue'を別々に追跡する必要があります。偽を返しますか? – mellamokb

答えて

7

をマスキング部の

編集:私はこのhttp://jsfiddle.net/EdM7B/1/

<div id='mask' onclick='alert("clicked");' style='width:200px; height:20px; position:absolute; background:white;filter:alpha(opacity=0);'></div> 
<select id='selectList' show=1 style='width:200px; height:20px;'> 
    <option>Test</option> 
</select> 

を更新した私は、IEが何の背景色が設定されていないこと、適切にdivをレンダリングしていないようなので、ハックのようなものを使用していたので、それは正常に動作しませんでした。これは私のIE7で動作します。

すべてのブラウザで機能させたい場合は、chrome/firefox opacity CSSを追加するか、背景色を適用するためにIEのみのCSSを追加する必要があります。

私はそれが上に配置されているために、要素が絶対的に配置されているため、実際には不透明度が正しく機能していないと考えられます。もともとは不透明度1だったのですが、それは見えないように私には間違っているので、0に変更しました。

+0

これは私の目的にはうってつけです。ありがとうございました:) – Rachel

+0

この 'show'属性は正確に何ですか? – mikesjawnbit

+0

私はそれがエラーだと思う、それはサイズ= 1でなければならないと思う。 – NibblyPig

0

は、あなたがこのためにmega menuを使用する方法について考えたことがあり、そのブラウザのバージョンでは動作しません、あなたはあなたが欲しいものを置くことができますドロップダウン部分 - 例えばあなたのテーブル

2

は、このようなdivの中に置く:

<div id="dllDiv" style="width:200px;height:200px;"> 
     < asp:DropDownList ID="DropDownList1" runat="server" style="z-index:-1000px;pointer-events:none;"> 
     < /asp:DropDownList> 
    </div> 

をあなたはCSSプロパティポインタ-Eを設定する必要がありますnoneに通気口、そしてあなたがあなたのテーブルには、divの中に隠されたり、AJAXを使用して、それをロードし表示することができ、このような何か:

(document).ready(function() { 
     $("#dllDiv").click(function() { 
      alert('adasd'); 
     }); 
    }); 
+1

これは 'DropDownList'の.... – Rachel

4

それはmousedownイベントでjQueryのevent.preventDefaultを使用して表示からDropDownListコントロールを停止することが可能です(デモ:http://jsfiddle.net/RCCKj)。

また、この関連の質問を参照してください。

基本的に、私はそれをブロックするためにドロップダウンの上に目に見えないのdivを配置している、とあなたはonclickのをクリックを処理することができます:あなたはこのような何かを行うことができstop chrome to show dropdown list when click a select

+0

残念ながら、私は組み込みのIE 7ウェブブラウザで動作するためにこれを必要としますが、これは必要ありません。 – Rachel

+0

IE7では、 "event.preventDefault()"コマンドがjavascriptエラーをスローします。おそらく、あなたのケースでは、 "イベント"プロパティがselectのマウスダウン以外の別のイベントを参照しているからです。しかし、このjavascriptエラーのおかげで、ドロップダウンの開きが防止されます。良い "副作用"かもしれない。 –

+0

これを使用するつもりでしたが、それはドロップダウンメニューを開くよりもデバッグモード(ie8をエミュレートするie10を使用して)をダブルクリックすると思われます。 – Siemsen

関連する問題