diff --git a/src/selectize.js b/src/selectize.js
index b6c998d30..4abc3595b 100644
--- a/src/selectize.js
+++ b/src/selectize.js
@@ -106,6 +106,7 @@ $.extend(Selectize.prototype, {
var tab_index;
var classes;
var classes_plugins;
+ var inputId;
inputMode = self.settings.mode;
tab_index = $input.attr('tabindex') || '';
@@ -118,6 +119,11 @@ $.extend(Selectize.prototype, {
$dropdown = $('
').addClass(settings.dropdownClass).addClass(inputMode).hide().appendTo($dropdown_parent);
$dropdown_content = $('
').addClass(settings.dropdownContentClass).appendTo($dropdown);
+ if(inputId = $input.attr('id')) {
+ $control_input.attr('id', inputId + '_selectized');
+ $('label[for='+inputId+']').attr('for', inputId + '_selectized');
+ }
+
if(self.settings.copyClassesToDropdown) {
$dropdown.addClass(classes);
}
diff --git a/test/interaction.js b/test/interaction.js
index 9d08fc1fd..250ff7a24 100644
--- a/test/interaction.js
+++ b/test/interaction.js
@@ -41,6 +41,45 @@
});
+ describe('clicking label', function() {
+
+ it('should give it focus to select', function(done) {
+ var inputId = "labeledSelect";
+ $('#fixture').append('');
+ var label = $('label[for="'+inputId+'"]');
+
+ var test = setup_test('', {});
+
+ Syn
+ .click(label)
+ .delay(0, function() {
+ label.remove();
+ expect(test.selectize.isFocused).to.be.equal(true);
+ done();
+ });
+ });
+
+ it('should give it focus to input', function(done) {
+ var inputId = "labeledInput";
+ $('#fixture').append('');
+ var label = $('label[for="'+inputId+'"]');
+
+ var test = setup_test('', {});
+
+ Syn
+ .click(label)
+ .delay(0, function() {
+ label.remove();
+ expect(test.selectize.isFocused).to.be.equal(true);
+ done();
+ });
+ });
+
+ });
+
describe('clicking option', function() {
it('should select it', function(done) {
@@ -237,7 +276,7 @@
expect(selectize.getItem(text).length).to.be.equal(0);
expect($(selectize.$dropdown_content).filter('.create').length).to.be.equal(0);
});
- });
+ });
});