Skip to content

Commit e4cf453

Browse files
committed
Merge PR #755
2 parents 5a59ef6 + 645e04a commit e4cf453

File tree

2 files changed

+43
-0
lines changed

2 files changed

+43
-0
lines changed

src/selectize.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ $.extend(Selectize.prototype, {
115115
var timeout_focus;
116116
var classes;
117117
var classes_plugins;
118+
var inputId;
118119

119120
inputMode = self.settings.mode;
120121
classes = $input.attr('class') || '';
@@ -126,6 +127,11 @@ $.extend(Selectize.prototype, {
126127
$dropdown = $('<div>').addClass(settings.dropdownClass).addClass(inputMode).hide().appendTo($dropdown_parent);
127128
$dropdown_content = $('<div>').addClass(settings.dropdownContentClass).appendTo($dropdown);
128129

130+
if(inputId = $input.attr('id')) {
131+
$control_input.attr('id', inputId + '-selectized');
132+
$('label[for='+inputId+']').attr('for', inputId + '-selectized');
133+
}
134+
129135
if(self.settings.copyClassesToDropdown) {
130136
$dropdown.addClass(classes);
131137
}

test/interaction.js

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,43 @@
100100

101101
});
102102

103+
describe('clicking label', function() {
104+
105+
it('should give it focus to select', function(done) {
106+
var inputId = "labeledSelect";
107+
var label =
108+
$('<label for="'+inputId+'">select</label>').appendTo('form');
109+
110+
var test = setup_test('<select id="'+inputId+'">' +
111+
'<option value="a">A</option>' +
112+
'<option value="b">B</option>' +
113+
'</select>', {});
114+
115+
syn.click(label)
116+
.delay(0, function() {
117+
label.remove();
118+
expect(test.selectize.isFocused).to.be.equal(true);
119+
done();
120+
});
121+
});
122+
123+
it('should give it focus to input', function(done) {
124+
var inputId = "labeledInput";
125+
var label =
126+
$('<label for="'+inputId+'">input</label>').appendTo('form');
127+
128+
var test = setup_test('<input id="'+inputId+'" type="text" value="a,b,c,d">', {});
129+
130+
syn.click(label)
131+
.delay(0, function() {
132+
label.remove();
133+
expect(test.selectize.isFocused).to.be.equal(true);
134+
done();
135+
});
136+
});
137+
138+
});
139+
103140
describe('clicking option', function() {
104141

105142
it('should select it', function(done) {

0 commit comments

Comments
 (0)