Как отправить форму, используя JavaScript? - PullRequest
155 голосов
/ 25 марта 2012

У меня есть форма с идентификатором theForm, которая имеет следующий div с кнопкой отправки внутри:

<div id="placeOrder" 
     style="text-align: right; width: 100%; background-color: white;">
     <button type="submit" 
             class='input_submit' 
             style="margin-right: 15px;" 
             onClick="placeOrder()">Place Order
     </button>
</div>

При нажатии вызывается функция placeOrder(). Функция изменяет innerHTML вышеупомянутого div, чтобы быть "обработка ..." (таким образом, кнопка отправки теперь исчезла).

Приведенный выше код работает, но теперь проблема в том, что я не могу получить форму для отправки! Я пытался поместить это в функцию placeOrder():

document.theForm.submit();

Но это не работает.

Как я могу получить форму для отправки?

Ответы [ 10 ]

117 голосов
/ 25 марта 2012

Установите атрибут name вашей формы на "theForm", и ваш код будет работать.

88 голосов
/ 25 марта 2012

Вы можете использовать ...

document.getElementById('theForm').submit();

... но не заменить innerHTML.Вы можете скрыть форму и затем вставить обработку ... span, которая появится на своем месте.

var form = document.getElementById('theForm');

form.style.display = 'none';

var processing = document.createElement('span');

processing.appendChild(document.createTextNode('processing ...'));

form.parentNode.insertBefore(processing, form);
30 голосов
/ 29 марта 2013

Он отлично работает в моем случае.

document.getElementById("form1").submit();

Кроме того, вы можете использовать его в следующих функциях:

function formSubmit()
{
     document.getElementById("form1").submit();
} 
10 голосов
/ 28 мая 2014
document.forms["name of your form"].submit();

или

document.getElementById("form id").submit();

Вы можете попробовать все это ... это определенно сработает ..

3 голосов
/ 18 апреля 2017

Это старый пост, но я оставлю способ отправки формы без использования тега name внутри формы:

HTML

<button type="submit" onClick="placeOrder(this.form)">Place Order</button>

JS

function placeOrder(form){
    form.submit();
}

Надеюсь, что это решение может помочь кому-то еще. TQ

3 голосов
/ 05 августа 2016
//Take form name as "theForm"
//Example:   
         ## ----Html code----- ##    
      <form method="post" action="" name="theForm">
            <button onclick="placeOrder()">Place Order</button>
      </form>

            ## -------javascript code------ ##

        function placeOrder(){
        document.theForm.action="yourUrl";
        document.theForm.submit();
        }
2 голосов
/ 07 января 2015

Если в вашей форме нет идентификатора, но есть имя класса, например theForm, вы можете использовать следующую инструкцию для ее отправки:

document.getElementsByClassName("theForm")[0].submit();
0 голосов
/ 29 марта 2018
<html>
<body>

<p>Enter some text in the fields below, then press the "Submit form" button to submit the form.</p>

<form id="myForm" action="/action_page.php">
  First name: <input type="text" name="fname"><br>
  Last name: <input type="text" name="lname"><br><br>
  <input type="button" onclick="myFunction()" value="Submit form">
</form>

<script>
function myFunction() {
    document.getElementById("myForm").submit();
}
</script>

</body>
</html>
0 голосов
/ 30 января 2018

Вы можете использовать приведенный ниже код для отправки формы с использованием Javascript;

document.getElementById('FormID').submit();
0 голосов
/ 02 февраля 2016

Я придумал простое решение, используя простую форму, скрытую на моем сайте, с той же информацией, что и пользователи, вошедшие в систему.Пример Если вы хотите, чтобы пользователь вошел в эту форму, вы можете добавить что-то подобное в следующую форму.

<input type="checkbox" name="autologin" id="autologin" />

Насколько я знаю, я первый, кто скрыл форму и отправил ее черезнажав на ссылку.Есть ссылка, отправляющая скрытую форму с информацией.Не на 100% безопасно, если вам не нравятся методы автоматического входа на ваш веб-сайт с паролями, которые находятся в скрытой форме, в текстовой области пароля ......

Хорошо, вот вам и работа.Допустим, $siteid - это учетная запись, а $sitepw - это пароль.

Сначала создайте форму в вашем php-скрипте, если вам не нравится html, используйте минимальные данные, а затем введите значение в скрытой форме.Я просто использую значение php и echo в любом месте, где я хочу, чтобы pref находился рядом с кнопкой формы, как вы ее не видите.

Форма PHP для печати

$hidden_forum = '
<form id="alt_forum_login" action="./forum/ucp.php?mode=login" method="post" style="display:none;">
    <input type="text" name="username" id="username" value="'.strtolower($siteid).'" title="Username" />
    <input type="password" name="password" id="password" value="'.$sitepw.'" title="Password" />
</form>';

PHP и ссылка для отправки формы

<code><?php print $hidden_forum; ?>
<pre><a href="#forum" onClick="javascript: document.getElementById('alt_forum_login').submit();">Forum</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...