Изменение действия формы на основе ввода текста - PullRequest
0 голосов
/ 13 января 2012

Итак, у меня есть простая форма поиска и кнопка отправки. То, что я хочу сделать, это проверить ввод, чтобы определить, было ли включено «=» в поисковый запрос, если так, то я хочу, чтобы он отправлял входную строку (que) в vert.php. Если нет, то я хотел бы отправить его на search.php.

<script type="text/javascript" language="JavaScript">
function chgact()
   {
if(document.myform.que.indexOf(=) == true) {
   document.myform.action = '/vert.php';
   }
return true;
}
</script>
    <h1>Keyword search</h1>
    <form name="myform" method="post" action="/search.php"  onSubmit="return chgact()">
      Keywords: <br/>
      <input type="text" name="que" id="que" / >
      <p/>
      Items to display: <br/>
      <select name="i">
        <option value="10">10</option>
        <option value="25">25</option>
        <option value="50">50</option>
      </select>
      <p/>
      <input type="submit" name="submit" value="Search"/>
    </form>

Любая помощь была бы очень ценной! :)

Ответы [ 2 ]

0 голосов
/ 13 января 2012

Я бы посоветовал вам выполнить это действие с помощью PHP. Если у посетителя вашего сайта отключен JavaScript, он не получит выгоду от вашей логики. Я предлагаю вам взглянуть на функцию strpbrk (), чтобы обнаружить символ "=".

0 голосов
/ 13 января 2012

Измените строку 4 на if (document.myform.que.value.indexOf('=') != -1) {

Вам нужно получить значение в очереди, вам нужно поставить знак равенства (вы ищете символ *)1007 * '='), а функция indexOf возвращает либо -1, если не найдено, либо позицию первого вхождения, которая является целым числом.Он не возвращает логическое значение.

Вот обновленный код:

<script type="text/javascript" language="JavaScript">
function chgact()
   {
if(document.myform.que.value.indexOf('=') != -1) {
   document.myform.action = '/vert.php';
   }
return true;
}
</script>
    <h1>Keyword search</h1>
    <form name="myform" method="post" action="/search.php"  onSubmit="return chgact()">
      Keywords: <br/>
      <input type="text" name="que" id="que" / >
      <p/>
      Items to display: <br/>
      <select name="i">
        <option value="10">10</option>
        <option value="25">25</option>
        <option value="50">50</option>
      </select>
      <p/>
      <input type="submit" name="submit" value="Search"/>
    </form>
...