我有一个文本输入,有人可以开始输入,然后在列表下方根据你的输入匹配填充。
1)目前我正在使用它来检查'包含':
if(listToRedo[i].value.indexOf(text) != -1){
但问题是它似乎区分大小写,我该如何更改?
2)onkeyevent,onkeypress,onkeydown是否接受删除键操作?另外哪一个最适合用于此活动。
答案 0 :(得分:2)
if(listToRedo[i].value.toLowerCase().indexOf(text.toLowerCase()) != -1){
如果我理解正确,上述内容应适用于您的情况。
答案 1 :(得分:2)
使用两个列表并将其中一个元素的所有元素转换为小写。然后,在进行查找之前,您也可以将字段中的文本转换为小写。
onkeydown
和onkeyup
,甚至是光标键,移位等。
答案 2 :(得分:2)
1)...但问题是它似乎区分大小写,我该如何更改?
您有两种选择。第一种是将两个字符串转换为小写,如下所示:
if (listToRedo[i].value.toLowerCase().indexOf(text.toLowerCase()) != -1) {
或使用不区分大小写修饰符(i
)的正则表达式:
var reg = new RegExp(text, "i");
if (listToRedo[i].value.search(reg) != -1) {
第二种方法可能会引入问题,但是,如果测试字符串包含在正则表达式中具有特殊功能的字符,则需要事先转义这些字符。第一种方法更适合基本搜索。
2)onkeyevent,onkeypress,onkeydown是否接受删除键操作?另外哪一个最适合用于此活动。
onkeydown 和 onkeyup 将触发删除键。至少Chrome和IE中的 onkeypress 不会触发删除键,只会触发以下键:
最好使用 onkeypress 和 onkeydown 的组合,并检查输入值的变化,因为这些事件的行为在浏览器之间有所不同。