this.form.submit () не работает после нажатия элемента div в форме - PullRequest
6 голосов
/ 05 декабря 2011

Я пытался проверить отправку формы с помощью щелчков мыши, но, похоже, форма не отправляется с ванильным JavaScript.

Я использую эту простую разметку и код:

<form name="form" id="price" action="" method="post">
<div class="category" name="price" value="50 dollars" 
onClick="this.form.submit();"
>price</div>

</form>

<?php
echo $_POST['price'];

?>

Я могу отправить форму с помощью Jquery, но я не понимаю, почему this.form.submit() не работает с vanilla javascript?Я использую Chrome, чтобы проверить это.

Ответы [ 5 ]

18 голосов
/ 05 декабря 2011

A div не является элементом формы.Для него нет this.form.

Вы все еще можете сделать document.forms.form.submit() (.form, поскольку у вас есть name="form")

4 голосов
/ 05 декабря 2011

Ваш код может работать, если вы попробовали что-то вроде этого:

onClick="document.forms["price"].submit();"

this в вашем случае фактически ссылается на тег div, а не на объект документа, который содержит ссылку на саму форму.

1 голос
/ 29 июля 2013

Используйте следующий код, если ваша форма называется «filter-form»

onclick="return document.forms.filter-form.submit();"
0 голосов
/ 08 ноября 2014

Это старый вопрос, но он должен работать

onclick="this.parentNode.form.submit()"
0 голосов
/ 05 декабря 2011

A div не является элементом формы (таким образом, нет свойства .form) и не имеет значения. Я думаю, что вы хотели <input> вместо <div>.

...