2009-08-23 44 views
3

有沒有什麼辦法使它,所以點擊選擇輸入字段不打開選項列表?我嘗試在onfocus中調用this.blur(),我試圖設置readonly屬性,這似乎沒有在Firefox中工作。 Chrome和IE似乎更認真地採用mousedown處理程序中的「return false」。禁用或忽略在Firefox中的選擇字段mousedown

編輯:我想要做的是實現我自己的界面,從選擇輸入中選擇選項。禁用選擇兩者都會改變其外觀,並防止在控件上觸發任何事件。限制爲一個選項仍然會使該選項在用戶單擊控件時打開,因此它不是一個好的解決方案。

我想我將不得不刪除select,並嘗試從文本框和圖像創建一些看起來像它的東西。

代碼(在線here):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
    <title>Test searchable select</title> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 
    <script type="text/javascript"> 
     $(function() { 
      $("#mys").mousedown(function() { 
       console.log("mousedown"); 
       return false; 
      }).focus(function() { 
       console.log("focus"); 
       this.blur(); 
      }); 
     }); 
    </script> 
<body> 
<select style="width: 300px" id="mys" readonly="readonly"> 
    <option>apple</option> 
    <option>banana</option> 
</select> 

</body> 
</html> 
+0

呀,你正在嘗試做似乎需要自定義選擇輸入。 – strager 2009-08-23 18:51:57

回答

1

爲什麼不讓它disabled

<select style="width: 300px" id="mys" readonly="readonly" disabled="disabled"> 
    <!-- ... --> 
</select> 
+0

看到我的更新,我需要仍然能夠處理控件上的事件。 – itsadok 2009-08-23 12:56:05

0
<script type="text/javascript"> 
     $(function() { 
      $("#mys").mousedown(function() { 
       $(this).val('1');//will close opened list 
      }) 
     }); 
    </script> 

<select style="width: 300px" id="mys" readonly="readonly"> 
    <option value='1'>apple</option> 
</select> 
+0

爲什麼這是downvoted? :o – 2012-03-27 02:09:42

+1

我沒有downvote,但這不適用於我的FF 11. http://jsfiddle.net/DSHJ5/ – itsadok 2012-03-27 08:32:01