From 67dfa314175bf36b7b95bf1dda280f165e5ea912 Mon Sep 17 00:00:00 2001 From: Brian Reavis Date: Sat, 3 Aug 2013 17:32:41 -0700 Subject: [PATCH] Bugfix for createItem behavior when non-object returned by "create" callback. Introduced in 0.6.10. --- src/selectize.js | 3 ++- tests/api.js | 30 ++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/src/selectize.js b/src/selectize.js index 6fd7e0d7d..6564bffb7 100644 --- a/src/selectize.js +++ b/src/selectize.js @@ -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(''); diff --git a/tests/api.js b/tests/api.js index 892c23750..35e8af4d1 100644 --- a/tests/api.js +++ b/tests/api.js @@ -71,6 +71,36 @@ }); }); + describe('createItem()', function() { + it('should fail if non-object returned by "create" callback', function() { + test = setup_test('', { + 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('