How to open select element using jquery

后端 未结 5 1667
青春惊慌失措
青春惊慌失措 2020-12-06 17:58

I have a select element as follows. i want to open it without user having to click on it.

    
                        
    
提交评论

  • 2020-12-06 18:21

    I have a complete solution for this problem here Is it possible to use JS to open an HTML select to show its option list?. In this scheme the select can be opened correctly, easy, with all its functionality and preserving the page layout. That solution is safe, simple and compatible with Internet Explorer, FireFox and Chrome.

    Thank's!

    0 讨论(0)
  • 2020-12-06 18:27

    You can find a similar question here: How can you programmatically tell an HTML SELECT to drop down (for example, due to mouseover)?

    I don't think there is a single solution that would work in every browser.

    I can confirm that using document.createEvent() and .dispatchEvent() (as explained at the above link) works great in WebKit browsers (Safari, Chrome) but not in Firefox, Opera and IE.

    However, you can try combining the different solutions listed there.

    0 讨论(0)
  • 2020-12-06 18:32

    You will pass a CSS selector to openSelect() and it will open the select element for you.

    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'); 
    });
    

    Here's a fiddle: http://jsfiddle.net/Z48wF/1/

    Source: How to open the select input using jquery @stackoverflow.com

    0 讨论(0)
  • 2020-12-06 18:38
    $(document).ready(function(){  
      $('#selId').on('click',function(){
         //do stuff here
      });
      $('#selId').trigger('click');
    });
    

    This should work.

    Update:

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

    Very similar to the other answer, but that should do it also rather then "click" you can try "focus"

    0 讨论(0)
  • 提交回复
    热议问题