我有一个自定义表,我想将它用作DropDown部分作为DropDownList
。
理想情况下,当用户单击DropDownList
时,它应该显示自定义表,而不是通常的下拉列表。我认为在不禁用DropDownList控件的情况下很容易阻止下拉列表的打开,但是情况似乎并非如此。
有什么简单的方法可以在不禁用DropDownList
的情况下防止它打开?
编辑:这必须适用于嵌入式IE7浏览器,而e.preventDefault()
在该浏览器版本中不工作。
发布于 2012-06-07 04:12:09
你可以这样做:
基本上,我已经在下拉列表上放置了一个不可见的div来阻止它,您可以用掩蔽div的onclick来处理单击。
编辑:我更新了这个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不透明CSS,或者使用一些IE专用CSS来应用背景颜色。
我认为,由于它在上面的位置,不透明实际上没有正常工作,因为元素是绝对定位的,不管是哪种方式,它似乎都是工作的。我最初把它作为不透明1,但这听起来不对,因为我们希望它是不可见的,所以我将它更改为0。
发布于 2012-06-01 05:01:32
可以通过在event.preventDefault
事件中使用jQuery的mousedown
来阻止下拉列表的显示(演示:http://jsfiddle.net/RCCKj)。
还请参阅以下相关问题:单击“选择”时停止铬以显示下拉列表
发布于 2012-05-31 14:24:39
把它放进这样的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属性指针-事件设置为none,然后可以使用ajax显示隐藏在div中的表或加载表,如下所示:
(document).ready(function() {
$("#dllDiv").click(function() {
alert('adasd');
});
});
https://stackoverflow.com/questions/10840415
复制相似问题