2009-08-23 14 views
3

選択入力フィールドをクリックしてもオプションのリストが表示されないようにする方法はありますか?firefoxの選択フィールドでmousedownを無効にするか無視する

onmousedownとonclickからfalseを返そうとしましたが、onfocusでthis.blur()を呼び出そうとしましたが、readonly属性を設定しようとしましたが、これはFirefoxでは動作しません。 ChromeとIEは、mousedownハンドラで "return false"をより真剣に受け止めているようです。

EDIT:私がしたいことは、選択入力からオプションを選択するための独自のインターフェイスを実装することです。選択を無効にすると、その外観が変更され、コントロール上でイベントが発生しなくなります。 1つのオプションに制限すると、ユーザーがコントロールをクリックしたときにそのオプションが開いてしまうので、良い解決策ではありません。

私は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

答えて

1

それdisabledしないのはなぜ?

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

私の更新を見て、私はまだコントロールのイベントを処理する必要があります。 – itsadok

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

なぜこれが下落したのですか? :o –

+1

私はダウンボートしませんでしたが、これは私のFF11では動作しません。http://jsfiddle.net/DSHJ5/ – itsadok

関連する問題