2015-01-26 4 views
0

У меня возникли проблемы при попытке отправить форму через кнопку, определенную в другой форме.Взаимодействие с несколькими формами

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <title>Test submit</title> 
</head> 
<body> 
    <form id="dummyForm" name="dummyForm"> 
    <button onclick="sendTheForm();">Submit other form</button> 
    </form> 
    <form id="formID" name="formName" action="viewpost.php" method="POST"> 
    <input type="hidden" value="something" id="inputA1" name="inputA1" /> 
    <input type="hidden" value="something" id="inputA2" name="inputA2" /> 
    </form> 
    <script type="text/javascript"> 
    function sendTheForm() { 
    document.forms['formName'].submit(); 
    } 
    </script> 
</body> 
</html> 

Единственный способ добиться того, чтобы перенаправлять, как ожидается, изменяет следующую строку:

onclick="sendTheForm();return false;" 

Я не понимаю, что представление формы работает таким образом. Может ли кто-нибудь объяснить?

Благодарим заранее!

ответ

2
  1. Вы нажимаете кнопку отправки
  2. обработчик событий JavaScript выстреливает
  3. Другая форма начинает представлять
  4. Кнопку Submit выполняет свои действия по умолчанию
  5. Первая форма отправляет, отменяя другой формы-х процесс подачи
+0

Конкретная кнопка не является типом отправки, поэтому я не вижу, почему пусковой купон формы вводит в первую очередь. ** Что такое действие кнопки по умолчанию? ** Ответ: [Ссылка на кнопку] (http://w3c.github.io/html-reference/button.html) – nhereveri

+0

@nhereveri - Это ** есть ** отправить тип. Ссылка, на которую вы указали, говорит: * Элемент кнопки без указанного атрибута типа представляет собой ту же вещь, что и элемент кнопки, с атрибутом типа, установленным на «отправить» * – Quentin

+0

Да. Я проверил на втором шаге, несколько минут спустя. – nhereveri

0

Я получаю правильный ответ от this post благодаря Quentin t изобр. Зачем вводить триггер в первую очередь? Причина типа по умолчанию для кнопки - тип отправки, но разные браузеры используют разные типы по умолчанию. Проверьте Button Reference.

Следующая работа, как и ожидалось, без return false трюк!

<button type="button" onclick="sendTheForm();">Submit other form</button> 
+0

'

Смежные вопросы