6

The select2 component can be configured to accept new values, as ask in Select2 dropdown but allow new values by user?

And you can see it at: http://jsfiddle.net/pHSdP/646/ the code is as below:

$("#tags").select2({
    createSearchChoice: function (term, data) {
        if ($(data).filter(function () {
            return this.text.localeCompare(term) === 0;
        }).length === 0) {
            return {
                id: term,
                text: term
            };
        }
    },
    multiple: false,
    data: [{
        id: 0,
        text: 'story'
    }, {
        id: 1,
        text: 'bug'
    }, {
        id: 2,
        text: 'task'
    }]
});

The problem is that the new value is only added to the list if you enter new value and press enter, or press tab.

Is it possible to set the select2 component to accept this new value when use types and leave the select2. (Just as normal html input tag which keeps the value which you are typing when you leave it by clicking some where on the screen)

I found that the select2 has select2-blur event but I don't find a way to get this new value and add it to list?!

2
  • 2
    Adding attribute selectOnBlur: true, seems to work for me Commented Sep 2, 2014 at 5:38
  • It worked! Please see it at: jsfiddle.net/pHSdP/647 Send the answer so I can mark it as correct! Commented Sep 2, 2014 at 5:46

3 Answers 3

11

Adding attribute selectOnBlur: true, seems to work for me.

Edit: glad it worked for you as well!

Sign up to request clarification or add additional context in comments.

Comments

5

I am using Select2 4.0.3 and had to add two options:

tags: true,
selectOnBlur: true,

This worked for me

1 Comment

For v4, it looks like selectOnBlur was changed to selectOnClose
0

And to be able to submit multiple new choices together with the existing ones:

select2({tags: true, selectOnBlur: true, multiple: true})

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.