使用jQuery抑制默认下拉功能

时间:2012-04-26 20:20:21

标签: javascript jquery drop-down-menu

我认为这样可行,但事实并非如此,我错过了什么?

HTML

<select id="TaskId">
 <option>A list of options</option>
</select>

的jQuery

<script type="text/javascript">
 $("#TaskId").click( function(e){
    e.preventDefault();
 });
</script>

2 个答案:

答案 0 :(得分:2)

e.preventDefault无法在点击上下文中进行下拉菜单,请使用:

代码1:

$("#TaskId").mousedown(function(){
   return false;
});

您也可以使用它:

代码2:

$("#TaskId").mousedown(function(e){
   e.preventDefault();
});

警告:e.preventDefault()在Firefox和Opera中有事件处理错误。

这可能是您想要实现的目标的一种解决方案:

代码3: 只是玩:

$("#TaskId").prop('disabled', true);
$("#TaskId").prop('disabled', false);

代码4: 如果您不想禁用所有事件处理,请查看这个可能有用的示例:

代码4的DEMO: http://jsfiddle.net/AHEex/

代码1和2的DEMO: http://jsfiddle.net/oscarj24/JcpPU/

希望这会有所帮助: - )

答案 1 :(得分:1)

为什么不简单地禁用选择字段?它将导致所需的行为并向用户显示发生的事情。而不是安装点击监听器,只需

$("#TaskId").prop("disabled", true);