JavaScript 预测输入/下拉

标签 javascript

我有一个文本输入,有人可以开始输入,然后列表下方将根据与您的输入相匹配的内容进行填充。

1) 目前我正在使用它来检查“包含”:

if(listToRedo[i].value.indexOf(text) != -1){

但问题是它似乎区分大小写,我该如何更改它?

2) onkeyevent、onkeypress、onkeydown 是否接受删除键操作?还有哪个最适合用于此事件。

最佳答案

1) ...but the problem is that it appears to be case sensitive, how can i change this?

您有两个选择。第一种是将两个字符串都转换为小写,如下所示:

if (listToRedo[i].value.toLowerCase().indexOf(text.toLowerCase()) != -1) {

或使用带有不区分大小写修饰符 (i) 的正则表达式:

var reg = new RegExp(text, "i");
if (listToRedo[i].value.search(reg) != -1) {

但是,如果您的测试字符串包含在正则表达式中具有特殊功能的字符并且您需要事先对这些字符进行转义,则第二种方法可能会引入问题。第一种方法更适合基本搜索。

2) Do onkeyevent, onkeypress, onkeydown accept the delete key action? Also which one is best to use for this activity.

onkeydownonkeyup 将触发删除键。 onkeypress 至少在 Chrome 和 IE 中不会为删除键触发,它只会为以下键触发:

  • 字母:A - Z(大写和小写)
  • 数字:0 - 9
  • 符号:! @#$​​%^&*()_-+=<[]{},./?\| '`“~
  • 系统:ESC、空格键、ENTER

最好结合使用 onkeypressonkeydown 并检查输入值的变化,因为这些事件的行为因浏览器而异。

关于JavaScript 预测输入/下拉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3502345/

相关文章:

javascript - 使用 JavaScript 查询 Sesame Triplestore

javascript - 获取一段 Javascript 来处理我的 Jquery 幻灯片表单

javascript - Jquery mobile 中的 setInterval 不起作用

javascript - 在pdf中使用javascript获取用户名

javascript - 如何在网络浏览器上忽略 Control+C(复制)

javascript - 获取点击的 li 中第一个 div 的 id

javascript - 重新格式化对象数组

javascript - NightmareJS(电子浏览器)是否兼容Firebase函数?

javascript - 从一串值创建二维对象

javascript - '引用错误 : require is not defined' in the es6 development environment