2013-04-22 178 views
9

私は次のようなselect要素を持っています。私はそれをクリックすることなくそれを開いてみたい。jqueryを使用してselect要素を開く方法

<select id="selId" class="pos_fixed"> 
     <option value="volvo">Option1</option> 
     <option value="saab">Option2</option> 
     <option value="mercedes">Option3</option> 
     <option value="audi">Option4</option> 
    </select> 

あなたは、単にクリックイベントをトリガすることができますその可能使用してjQueryのまたはJavaScript

+0

可能な重複:http://stackoverflow.com/questions/2048213/open-select-using-javascript-jquery – Kenneth

+0

チェックアウトのhttp://api.jqueryui .com/selectmenu /#method-open –

答えて

-5

場合は私に知らせてください:

jQuery(document).ready(function($) { 
    $('#selId').click(); 
}); 
+3

もちろん、何も起こりません。 – RobG

+0

私の選択を完全に再構築することを忘れた –

-3
$(document).ready(function(){ 
    $('#selId').on('click',function(){ 
    //do stuff here 
    }); 
    $('#selId').trigger('click'); 
}); 

これは動作するはずです。

アップデート:他の回答に

$(document).ready(function(){ 
    $('#selId').click(function(){ 
    //do stuff here 
    }); 
    $('#selId').click(); 
}); 

非常に類似したが、それはまたそれを行う必要があり、むしろ、あなたが

+0

FirefoxまたはIEでは動作しません。 – RobG

+0

ok、答えを少しきれいに更新しました。 –

21

を「フォーカス」を試すことができます「をクリックし、」あなたはopenSelect()にCSSセレクタを通過し、 select要素が表示されます。ここで

var openSelect = function(selector){ 
    var element = $(selector)[0], worked = false; 
    if (document.createEvent) { // all browsers 
     var e = document.createEvent("MouseEvents"); 
     e.initMouseEvent("mousedown", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); 
     worked = element.dispatchEvent(e); 
    } else if (element.fireEvent) { // ie 
     worked = element.fireEvent("onmousedown"); 
    } 
    if (!worked) { // unknown browser/error 
     alert("It didn't worked in your browser."); 
    } 
} 

$(function(){ // when DOM is ready 
    // open .select element 
    openSelect('.select'); 
}); 

はフィドルです:http://jsfiddle.net/Z48wF/1/

出典:私は、単一のソリューションがあるとは思わないHow can you programmatically tell an HTML SELECT to drop down (for example, due to mouseover)?

:stackoverflow.com

+12

WebKitブラウザ(Safari、Chrome)でのみ動作します。 Firefox、Opera、IEでは動作しません。私はちょうどそれをテストした。 – zengabor

+1

それはChromeでもう一ヶ月以内に動作しません:https://www.chromestatus.com/features/57188​​03933560832 – Capsule

+3

これ以上のブラウザでは動作しません。 – sajushko

1

@How to open the select input using jqueryあなたがここに同様の質問を見つけることができますそれはすべてのブラウザで動作します。

document.createEvent().dispatchEvent()を使用すると、WebKitブラウザ(Safari、Chrome)では機能しますが、Firefox、Opera、IEでは機能しないことが確認できます。

ただし、そこに記載されているさまざまなソリューションを組み合わせることができます。

+1

2番目の段落で停止したはずです。 :-)選択要素を「開く」ための信頼できるクロスブラウザーの方法はありません。 – RobG

0

私はここでこの問題の完全な解決方法を持っていますIs it possible to use JS to open an HTML select to show its option list?。このスキームでは、selectを適切に、簡単に、すべての機能で開き、ページレイアウトを保持することができます。このソリューションは安全でシンプルでInternet Explorer、FireFox、Chromeと互換性があります。

ありがとうございます!

-3

あなたは次のスクリプトを使用することができます

<script> 
    function(){ 
     selectbox = $(select-selector)[0] 
     selectbox.size = selectbox.options.length; 
    } 
</script> 
+1

それは仕事をしなかったし、レイアウトを壊した。 –

関連する問題