Как автоматически отправить форму в javascript? - PullRequest
4 голосов
/ 15 сентября 2011

У меня есть форма с полем ввода текста, которая импортирует данные каждые пару секунд и отображает их в поле формы, скажем:

<input name="code" id="code" type="text" size="64" maxlength="128" />

и кнопка отправки, и моя форма имеет имя формы form1. Я хочу, чтобы кнопка отправки была нажата, как только данные в поле формы изменились. Я пытался сделать следующее. В шапке я добавил следующий javascript:

<SCRIPT LANGUAGE="javascript">
function send_data()
{
document.form1.submit();
}
</SCRIPT>

и в форме:

<input name="code" id="code" type="text" size="64" maxlength="128" onchange="send_data();" />

но это не сработало ..

Любая помощь?

Спасибо

1 Ответ

4 голосов
/ 15 сентября 2011

Примерно так будет работать:

<form action="#">
    <input type="" id="input" />
    <button type="submit"></button:>
</form>

<script>
function send_data() {
    document.forms[0].submit();
}

window.onload = function(){
    var input = document.getElementById('input');
    input.onchange = send_data;
}
</script>

Но я бы добавил несколько предостережений:

  1. Я предполагаю, что на странице есть только одна форма.Вам было бы безопаснее назначать и идентифицировать вашу форму и использовать getElementById и ссылаться на это вместо document.forms[x]
  2. Событие изменения произойдет только после того, как вы потеряете фокус на вводе, что, вероятно, вам нужно?Просто убедившись, что это ожидаемое поведение
  3. Не зная, зачем вам это нужно, я бы заметил, что это может быть очень раздражающим для пользователя, так как отправка приведет к загрузке новой страницы.Возможно, вам лучше сделать это через ajax, чтобы не мешать работе пользователя.Если вы сделаете это, я настоятельно рекомендую библиотеку JS для этого.
...