将用户输入与indexOf匹配

时间:2012-09-26 07:33:50

标签: javascript input indexof

我正在尝试显示与用户输入相匹配的文字。当用户输入第一个字符,例如'a'时,它会显示结果,但是当输入第二个字符时没有任何反应,例如'as'。因此,当用户输入时,我希望显示棒球和快速。

// JavaScript Document

s1= new String()
s2= new String()
var myArray = new Array();

myArray[0] = "Football";
myArray[1] = "Baseball";
myArray[2] = "Cricket";
myArray[3] = "Fast";


function test() //  called onkeyup() event
{
 s1 = document.getElementById('filter').value;
 s2 = s2+s1;
 arraysearch();
}

function arraysearch()
{
    for(i=0; i<myArray.length; i++)
    { 
       if (myArray[i].indexOf(s2) != -1) // also tried using match method
       { 
           alert('Matched');           
           document.getElementById('placeholder').innerHTML += myArray[i] + "<br/>";
       }
    }
}

3 个答案:

答案 0 :(得分:1)

 <script type="text/javascript" language="javascript">
            function ShowMe(obj) {

                var lbl = document.getElementById('divContent');

                var myArray = new Array();
                myArray[0] = "Football";
                myArray[1] = "Baseball";
                myArray[2] = "Cricket";
                myArray[3] = "Fast";

                var s2 = obj.value.toLowerCase();

                for (i = 0; i < myArray.length; i++) {
                    if (myArray[i].toLowerCase().indexOf(s2) != -1) 
                    {
                        lbl.innerHTML = myArray[i];
                    }
                }

            }

        </script>

HTML代码

<div>
<h1>JS Test</h1>
    <input id="txtInput" onkeyup="javascript:ShowMe(this)" />
    <div id="divContent">

    </div>
</div>

答案 1 :(得分:1)

试过这个,我实施了一个解决方案来帮助你。您可以使用正则表达式来更好地比较和匹配字符串。它使用jquery只是为了dom操作,但那就是它。您可以继续编辑它。希望它有所帮助。

http://jsfiddle.net/cy4QH/2/

答案 2 :(得分:0)

如果“filter”是一个输入元素,并且您设置了“onKeyUp ='javascript:arraysearch()'”,则此代码应该适合您。

function arraysearch() 
{ 
  for(var i in myArray) 
  {  
    if (myArray[i].toLowerCase().indexOf(document.getElementById('filter').value) != -1) 
    {  
       alert('Matched');            
       document.getElementById('placeholder').innerHTML += myArray[i] + "<br/>"; 
    } 
  } 
}