JS: Получить строку из массива, которая соответствует строке в форме ввода - PullRequest
1 голос
/ 19 марта 2011

У меня есть форма с вводом текста и кнопкой отправки. В текстовом вводе вы пишете простые команды, такие как / look (создание простой игры, чтобы попробовать и улучшить свои навыки). В .js-файле у меня есть массив из нескольких команд / строк.

Моя проблема: как сопоставить строку в форме со строками в массиве. Я уже рассчитал, что мне нужны for-string и if / else-string, но я не знаю, как к этому добраться.

HTML-файл:

    <div id="commandField">
        <form method="POST" action="action" onSubmit="return commands(str);">
            <p class="center">Command: <input type="text" name="command" class="command" /><input type="submit" value="Execute" /></p>
        </form>
    </div>

Javascript-файл:

function commands(str)
{
    var charCommand=new Array(); // regular array (add an optional integer
    charCommand[0]="/look";       // argument to control array's size)
    charCommand[1]="/use";
    charCommand[2]="/continue";
    charCommand[3]="/pickup";

    for(i=0 ; i < charCommand.length ; i++)
{
    if(str.match(charCommand[x]))
        {
            document.getElementById("commandField").innerHTML=charCommand[x];
        }
}

}

1 Ответ

0 голосов
/ 19 марта 2011

У тебя почти все правильно,
Вот что я сделал.

<script type="text/javascript">
        function commands(form)
    {
        var str = form.command.value;
       var charCommand=new Array(); // regular array (add an optional integer
        charCommand[0]="/look";       // argument to control array's size)
        charCommand[1]="/use";
        charCommand[2]="/continue";
        charCommand[3]="/pickup";

        for(i=0 ; i < charCommand.length ; i++)
    {
        if(str.match(charCommand[i]))
            {
                document.getElementById("commandField").innerHTML=charCommand[i];
            }
    }
    }



    </script>
    </head>
    <body>
        <div id="commandField">
            <form method="GET" action="">
                <p class="center">Command: <input type="text" name="command" class="command" />
                <input type="button" value="Execute" onClick="commands(this.form)"/></p>
            </form>
        </div>
    </body>
    </html>
...