admin管理员组

文章数量:1404937

Im trying to unbind keypress when select2 is focus, this seems to work

 $('#someId').on('select2-focus',function(){
    $(document).unbind('keypress');
});

but i want to get all select2 instance, i have tried

 $('.select2').on('select2-focus',function(){
    $(document).unbind('keypress');
});

but it is not working, i dont want to add ".custom_class" in each select2 i have in my page. can someone help me on this one? Thanks in advance.

Im trying to unbind keypress when select2 is focus, this seems to work

 $('#someId').on('select2-focus',function(){
    $(document).unbind('keypress');
});

but i want to get all select2 instance, i have tried

 $('.select2').on('select2-focus',function(){
    $(document).unbind('keypress');
});

but it is not working, i dont want to add ".custom_class" in each select2 i have in my page. can someone help me on this one? Thanks in advance.

Share Improve this question edited Dec 10, 2015 at 2:48 RobG 148k32 gold badges179 silver badges214 bronze badges asked Dec 10, 2015 at 2:19 jay tempjay temp 1,20312 silver badges11 bronze badges
Add a ment  | 

3 Answers 3

Reset to default 6

In case anyone was still interested in the answer for the original question, i.e., „Getting all select2 instance in DOM“:

// The $element can be a narrower scope, or the entire document.
$element = $(document);
$element.find('select').each(function (i, select) {
    var $select = $(select);

    // Make sure that the select has Select2.
    if($select.hasClass("select2-hidden-accessible")) {
         // Perform your action, e.g.:
         $select.on('select2-focus',function(){
             $(document).unbind('keypress');
         });
         // You can also use the console for debugging:
         // console.log($select);
    }
});

The $select.hasClass("select2-hidden-accessible") check is taken from the original docs: https://select2/programmatic-control/methods#checking-if-the-plugin-is-initialized

But notice, that the 'select2-focus' event might not exist anymore, as it is not listed here: https://select2/programmatic-control/events . You should be able to use $select.find('.select2-selection__rendered').on('focus', function ...), but I did not test that.

For a working example of how this can be used, see my jsfiddle for a Select2 issue. Notice the function unobscurePlaceholdersOfSelect2().

jQuery('.select2-container').each(function(i,el){
    $(el).data('select2').close()
})

I don't know what's your html. but try it? jQuery( "[attribute='value']" )

for example: $("input[type='text']")

本文标签: javascriptGetting all select2 instance in DOMStack Overflow