Skip to content

Commit

Permalink
Bugfix for createItem behavior when non-object returned by "create" c…
Browse files Browse the repository at this point in the history
…allback.

Introduced in 0.6.10.
  • Loading branch information
brianreavis committed Aug 4, 2013
1 parent 54aba49 commit 67dfa31
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/selectize.js
Original file line number Diff line number Diff line change
Expand Up @@ -1376,7 +1376,8 @@ $.extend(Selectize.prototype, {
self.unlock();
self.focus(false);

var value = hash_key(data && data[self.settings.valueField]);
if (!data || typeof data !== 'object') return;
var value = hash_key(data[self.settings.valueField]);
if (!value) return;

self.setTextboxValue('');
Expand Down
30 changes: 30 additions & 0 deletions tests/api.js
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,36 @@
});
});

describe('createItem()', function() {
it('should fail if non-object returned by "create" callback', function() {
test = setup_test('<select>', {
valueField: 'value',
labelField: 'value',
create: function(input) {
return false;
}
});

test.selectize.$control_input.val('test');
test.selectize.createItem();
expect(test.selectize.items.length).to.be.equal(0);
test.teardown();

test = setup_test('<select>', {
valueField: 'value',
labelField: 'value',
create: function(input) {
return 'hello';
}
});

test.selectize.$control_input.val('test');
test.selectize.createItem();
expect(test.selectize.items.length).to.be.equal(0);
test.teardown();
});
});

describe('addOption()', function() {
before(function() {
test = setup_test('<select>', {valueField: 'value', labelField: 'value'});
Expand Down

0 comments on commit 67dfa31

Please sign in to comment.