Текстовое поле простой веб-формы ничего не возвращает - PullRequest
0 голосов
/ 03 февраля 2020

Я сталкиваюсь с действительно непонятной проблемой, когда у меня есть чрезвычайно простая (читай, новичок ie, пытающаяся понять) веб-форма. Форма выглядит следующим образом:

<form id="myform">
      <input type="text" name="t" id="t" />
      <input type="submit" id="sub" value="Submit" />
</form>

Затем у меня есть несколько очень простых js, которые я просто хочу использовать, чтобы проверить, какое значение имеет пользователь перед выполнением каких-либо других действий и отправкой.


function search() 
{
    var form = document.querySelector("form");
    s = form.elements[0].value;
    alert(form.elements[0].type);
    alert(form.elements[0].value);
}

Что я не понимаю, так это то, почему, независимо от того, что я делаю, первое предупреждение показывает тип «текст», как я хочу, а второе вообще ничего не возвращает. Неважно, что находится в поле, когда я отправляю сообщение, оно исчезает до того, как javascript даже поймает его.

Я также пытался

document.forms["myform"].addEventListener("submit", function(event) {
    event.preventDefault();
});

И, похоже, это никак не отразилось на том факте, что страница всегда отправляется, когда я обновляю sh, но она не позволяла моей кнопке отправить.

; tldr Я просто хочу получить текстовое значение из моего текстового поля, чтобы я мог выполнить некоторую проверку, но оно всегда пустое.

edit

Let я знаю, могу ли я "закрыть" вопросы. Проблема заключалась в том, как я связал функцию с кнопкой, которую я даже не рассматривал. Будьте осторожны с этими "()"

1 Ответ

0 голосов
/ 16 апреля 2020

Возможно, вам придется изменить ключевое слово "поиск" на что-то вроде:

<script type="text/javascript">
    function doSearch() {
        var t = document.getElementById('t');
        alert(t.type);
        alert(t.value);
    }
</script>

Тогда это будет работать:

<input type="text" name="t" id="t" />
<input type="submit" id="sub" value="Submit" />
<a href="#" onclick="doSearch(); return false;">do search</a>
...