JavaScript预测输入/下拉列表
我有一个文本输入,有人可以开始输入,然后在下面的列表中将根据您输入的内容进行填充 1) 目前,我正在使用此选项检查“包含”:JavaScript预测输入/下拉列表,javascript,Javascript,我有一个文本输入,有人可以开始输入,然后在下面的列表中将根据您输入的内容进行填充 1) 目前,我正在使用此选项检查“包含”: if(listToRedo[i].value.indexOf(text) != -1){ 但问题是,它似乎是区分大小写的,我如何才能更改它 2) onkeyevent、onkeypress、onkeydown是否接受删除键操作?另外,在本活动中最好使用哪一个 if(listToRedo[i].value.toLowerCase().indexOf(text.toLowe
if(listToRedo[i].value.indexOf(text) != -1){
但问题是,它似乎是区分大小写的,我如何才能更改它
2) onkeyevent、onkeypress、onkeydown是否接受删除键操作?另外,在本活动中最好使用哪一个
if(listToRedo[i].value.toLowerCase().indexOf(text.toLowerCase()) != -1){
如果我理解正确,上述内容应该适用于您的案例
onkeydown
和onkeydup
会为每个键调用,甚至是光标键、shift键等if (listToRedo[i].value.toLowerCase().indexOf(text.toLowerCase()) != -1) {
或者使用带有不区分大小写修饰符的正则表达式(i
):
但是,如果测试字符串包含在正则表达式中具有特殊函数的字符,并且需要事先转义这些字符,那么第二种方法可能会带来问题。第一种方法更适合于基本搜索
2) onkeyevent、onkeypress、onkeydown是否接受删除键操作?另外,在本活动中最好使用哪一个
if(listToRedo[i].value.toLowerCase().indexOf(text.toLowerCase()) != -1){
onkeydown和onkeyup将为删除键触发。onkeypress不会为至少Chrome和IE中的delete键触发,它将仅为以下键触发:
- 字母:A-Z(大写和小写)
- 数字:0-9
- 符号:!@$%^&*( ) _ - + = < [ ] { } , . / ? \ | ' ` "~
- 系统:ESC、空格键、ENTER