如何在使用自动完成时触发keyup()()

时间:2014-09-19 09:07:20

标签: javascript jquery

我想将单词的第一个字母改为大写。所以,我在keyup()函数上编写了一些代码。

每当我在文本字段中输入内容时,Word的第一个字母就会变为大写字母。

我也使用autocomplete()功能。问题是,每当我从自动完成下拉选择一个单词时,它的第一个字母不会变为大写,并且最后一个文本框也会自动聚焦。

仅供参考:我在自动填充选择后触发keyup()功能。

jsfiddle:http://jsfiddle.net/8ke04mgs/5/

2 个答案:

答案 0 :(得分:0)

您可以在文本框中使用更改事件

$(document).on('change', 'inputBox', function() {
  // Does some stuff and logs the event to the console
});

这将解决自动填充问题

答案 1 :(得分:0)

如果在更新框的值后调用您提供给自动填充库的select方法,那么您当前的处理方式将完美地运行。 但它不是,它之前被调用过,因此它大写的值是旧值,并且无论如何立即被自动完成替换。

正如@Alok指出的那样,你可以使用'更改'等待一段时间的事件。

为避免将您的事件处理程序写出两次,请记住.on()可以接受多个事件,因此我只需在keyup上调用它并进行更改

$('#element').on('keyup change', function() {
    ...
});

但我认为在现代浏览器中'改变'应该够了。