mirror of
https://github.com/twbs/bootstrap.git
synced 2022-11-09 12:25:43 -05:00
Merge pull request #2177 from phopkins/typeahead_friendly
[2.0.2-wip] Typeahead friendly
This commit is contained in:
commit
26e683f1d0
2 changed files with 11 additions and 7 deletions
12
js/bootstrap-typeahead.js
vendored
12
js/bootstrap-typeahead.js
vendored
|
@ -40,6 +40,7 @@
|
||||||
, select: function () {
|
, select: function () {
|
||||||
var val = this.$menu.find('.active').attr('data-value')
|
var val = this.$menu.find('.active').attr('data-value')
|
||||||
this.$element.val(val)
|
this.$element.val(val)
|
||||||
|
this.$element.change();
|
||||||
return this.hide()
|
return this.hide()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -165,9 +166,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
, keyup: function (e) {
|
, keyup: function (e) {
|
||||||
e.stopPropagation()
|
|
||||||
e.preventDefault()
|
|
||||||
|
|
||||||
switch(e.keyCode) {
|
switch(e.keyCode) {
|
||||||
case 40: // down arrow
|
case 40: // down arrow
|
||||||
case 38: // up arrow
|
case 38: // up arrow
|
||||||
|
@ -180,6 +178,7 @@
|
||||||
break
|
break
|
||||||
|
|
||||||
case 27: // escape
|
case 27: // escape
|
||||||
|
if (!this.shown) return
|
||||||
this.hide()
|
this.hide()
|
||||||
break
|
break
|
||||||
|
|
||||||
|
@ -187,10 +186,11 @@
|
||||||
this.lookup()
|
this.lookup()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
e.stopPropagation()
|
||||||
|
e.preventDefault()
|
||||||
}
|
}
|
||||||
|
|
||||||
, keypress: function (e) {
|
, keypress: function (e) {
|
||||||
e.stopPropagation()
|
|
||||||
if (!this.shown) return
|
if (!this.shown) return
|
||||||
|
|
||||||
switch(e.keyCode) {
|
switch(e.keyCode) {
|
||||||
|
@ -210,12 +210,12 @@
|
||||||
this.next()
|
this.next()
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
|
e.stopPropagation()
|
||||||
}
|
}
|
||||||
|
|
||||||
, blur: function (e) {
|
, blur: function (e) {
|
||||||
var that = this
|
var that = this
|
||||||
e.stopPropagation()
|
|
||||||
e.preventDefault()
|
|
||||||
setTimeout(function () { that.hide() }, 150)
|
setTimeout(function () { that.hide() }, 150)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
6
js/tests/unit/bootstrap-typeahead.js
vendored
6
js/tests/unit/bootstrap-typeahead.js
vendored
|
@ -114,15 +114,19 @@ $(function () {
|
||||||
source: ['aa', 'ab', 'ac']
|
source: ['aa', 'ab', 'ac']
|
||||||
})
|
})
|
||||||
, typeahead = $input.data('typeahead')
|
, typeahead = $input.data('typeahead')
|
||||||
|
, changed = false
|
||||||
|
|
||||||
$input.val('a')
|
$input.val('a')
|
||||||
typeahead.lookup()
|
typeahead.lookup()
|
||||||
|
|
||||||
|
$input.change(function() { changed = true });
|
||||||
|
|
||||||
$(typeahead.$menu.find('li')[2]).mouseover().click()
|
$(typeahead.$menu.find('li')[2]).mouseover().click()
|
||||||
|
|
||||||
equals($input.val(), 'ac', 'input value was correctly set')
|
equals($input.val(), 'ac', 'input value was correctly set')
|
||||||
ok(!typeahead.$menu.is(':visible'), 'the menu was hidden')
|
ok(!typeahead.$menu.is(':visible'), 'the menu was hidden')
|
||||||
|
ok(changed, 'a change event was fired')
|
||||||
|
|
||||||
typeahead.$menu.remove()
|
typeahead.$menu.remove()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in a new issue