我得到了一個文本輸入,從而有人可以開始輸入,然後在列表下方根據您輸入的內容填充。JavaScript預測輸入/下拉
1)在使用這種檢查「包含」的那一刻IM:
if(listToRedo[i].value.indexOf(text) != -1){
但問題是,它似乎是大小寫敏感的,我怎樣才能改變呢?
2)onkeyevent,onkeypress,onkeydown是否接受刪除關鍵動作?此外,哪一個最適合用於此活動。
我得到了一個文本輸入,從而有人可以開始輸入,然後在列表下方根據您輸入的內容填充。JavaScript預測輸入/下拉
1)在使用這種檢查「包含」的那一刻IM:
if(listToRedo[i].value.indexOf(text) != -1){
但問題是,它似乎是大小寫敏感的,我怎樣才能改變呢?
2)onkeyevent,onkeypress,onkeydown是否接受刪除關鍵動作?此外,哪一個最適合用於此活動。
1)......但問題是,它似乎是區分大小寫,如何我可以改變這個嗎?
有兩種選擇。首先是兩個字符串轉換爲小寫,如下所示:然而
var reg = new RegExp(text, "i");
if (listToRedo[i].value.search(reg) != -1) {
該第二方法可引入的問題,:
if (listToRedo[i].value.toLowerCase().indexOf(text.toLowerCase()) != -1) {
或使用正則表達式與不區分大小寫的改性劑(i
) ,如果您的測試字符串包含正則表達式中具有特殊功能的字符,並且您需要事先轉義這些字符。第一種方法更適合於基本搜索。
2)onkeyevent,onkeypress,onkeydown是否接受刪除鍵操作?此外,哪一個最適合用於此活動。
的onkeydown和的onkeyup將火Delete鍵。 onkeypress事件在至少Chrome和IE不會觸發刪除鍵,爲此,將火只以下鍵:
這是最好用的組合onkeypress事件和的onkeydown併爲您在輸入的值的變化,因爲這些事件的行爲不同的瀏覽器。
if(listToRedo[i].value.toLowerCase().indexOf(text.toLowerCase()) != -1){
如果我理解正確,上面應該適合您的情況。
使用兩個列表並將其中一個列表的所有元素轉換爲小寫。然後,在查找之前,您也可以將字段中的文本隱藏爲小寫。
onkeydown
和onkeyup
被調用爲每一個鍵都光標鍵,移位等
* onkeypress *不會在所有瀏覽器中的每個鍵被調用。 – 2010-08-17 12:31:24
@安迪:謝謝,修正。 – 2010-08-18 07:36:58