10

我有我想作爲下拉部分作爲DropDownList使用哪個定製表格。如何防止在DropDownList中打開下拉菜單?

Table

理想的情況下,當用戶點擊一個DropDownList,它應該顯示自定義表而不是通常的下拉。我想這會很容易防止打開下拉沒有禁用DropDownList控件,但是這似乎並不如此。

有一種簡單的方法,以防止開口DropDownList沒有禁用它?

編輯:這有一個嵌入式IE 7的Web瀏覽器中運行,並且e.preventDefault()不會在該瀏覽器版本

+2

如果您自定義的下拉內容的格式,你還不如自定義下拉本身好。只需使用文本框來顯示當前選定的項目,並在其中顯示一個帶有向下箭頭圖標的按鈕,以類似於下拉菜單。 – mellamokb

+0

@mellamokb我希望有一個更簡單的方法...我需要單獨跟蹤「SelectedValue」和「DisplayValue」,因爲實際選擇的值是UTC日期,而顯示日期基於用戶的時區 – Rachel

+0

您是否嘗試了'onclick'事件,其中'preventDefault'或'返回false'? – mellamokb

回答

7

你可以做這樣的事情:

基本上,我已經放置一個不可見DIV在下拉菜單來阻止它,你可以處理的onclick點擊掩蔽div。

編輯:我已經更新了這個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中起作用。

如果你希望它在你需要添加鉻/ Firefox的透明度CSS還是有一定的IE CSS僅適用底色所有的瀏覽器。

我認爲由於它位於上方的方式,不透明度,因爲該元素是絕對定位,似乎工作無論哪種方式,其實並沒有正常工作。我本來是不透明度1,但聽起來我錯了,因爲我們希望它無形的,所以我把它改爲0

+0

這很適合我的目的,非常感謝你:) – Rachel

+0

這個'show'屬性到底是什麼? – mikesjawnbit

+0

我認爲這是一個錯誤,我認爲它應該是size = 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通風口沒有,那麼你可以展示你的表藏在一個div或者通過使用AJAX,像這樣裝好了:

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

這並不妨礙在DropDownList'下拉打開.... – Rachel

4

這是可能的從mousedown事件使用jQuery的event.preventDefault停止展示的下拉列表(演示:http://jsfiddle.net/RCCKj)。

另請參閱此相關的問題:stop chrome to show dropdown list when click a select

+0

不幸的是,我需要這個工作在嵌入式IE 7的網頁瀏覽器,而不是。 – Rachel

+0

在IE7上,「event.preventDefault()」命令會拋出一個javascript錯誤,可能是因爲,在你的情況下,「event」屬性引用除select的mousedown之外的另一個事件。但是,由於這個JavaScript錯誤,下拉開放被阻止。也許是一個很好的「副作用」。 –

+0

打算使用這個,但似乎如果你在沒有調試模式(使用ie10仿真ie8)下雙擊它,它會打開下拉菜單。 – Siemsen

相關問題