我認爲這樣可行,但它不會,我錯過了什麼?用jQuery取消默認的下拉菜單功能
HTML
<select id="TaskId">
<option>A list of options</option>
</select>
jQuery的
<script type="text/javascript">
$("#TaskId").click(function(e){
e.preventDefault();
});
</script>
我認爲這樣可行,但它不會,我錯過了什麼?用jQuery取消默認的下拉菜單功能
HTML
<select id="TaskId">
<option>A list of options</option>
</select>
jQuery的
<script type="text/javascript">
$("#TaskId").click(function(e){
e.preventDefault();
});
</script>
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: 如果你不 與剛玩想要禁用所有的事件處理,看看這個例子可能有所幫助:
DEMO的代碼4:http://jsfiddle.net/AHEex/
DEMO的代碼1和2:http://jsfiddle.net/oscarj24/JcpPU/
希望這有助於:-)
不錯,但它不適用於Firefox。如上所述,這可能是一個Firefox的錯誤,因此不是你的代碼的錯誤。 – 2012-04-26 20:30:14
@TravisJ是的,你是對的,看看我可能的解決方案,我編輯我的帖子。 – 2012-04-26 21:44:19
@TravisJ我看着你不想禁用所有的事件處理,也許我的最後一個例子可以幫助。 – 2012-04-27 02:32:56
爲什麼不能簡單地禁用選擇字段?它會導致期望的行爲並向用戶顯示發生了什麼。而不是安裝點擊監聽器,只需要
$("#TaskId").prop("disabled", true);
不是一個壞主意,我喜歡向用戶展示發生了什麼的想法,所以+1。但是,禁用該屬性將不幸地禁用該元素的所有事件處理,這絕對不是理想的。 – 2012-04-26 23:01:11
你的目標是...什麼? – bhamlin 2012-04-26 20:23:45
爲什麼不簡單地刪除選項?你想做什麼? – 2012-04-26 20:23:45
請參閱此討論:http://stackoverflow.com/questions/3176812/is-it-possible-to-use-event-preventdefault-with-a-select-element-with-jque – keune 2012-04-26 20:24:19