ti-enxame.com

this.form.submit () não funciona após clicar no elemento div no formulário

Eu estava tentando testar o envio de formulários usando cliques do mouse, mas o formulário não parece ser enviado com o javascript do Vanilla.

Estou usando esta marcação e código simples:

<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'];

?>

Posso enviar o formulário com o Jquery, mas não entendo por que this.form.submit() não está funcionando com o javascript do Vanilla? Estou usando o Chrome para testar isso.

8
user701510

Um div não é um elemento de formulário. Não há this.form Para isso.

Você ainda pode fazer document.forms.form.submit() (.form Desde que tenha name="form")

19
David Hedlund

Seu código pode funcionar se você tentar algo como isto:

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

this no seu caso, na verdade, refere-se à tag div, não ao objeto de documento que contém a referência ao próprio formulário.

4
buruzaemon

Use o código a seguir se o nome do seu formulário for "filter-form"

onclick="return document.forms.filter-form.submit();"
1
user2629584

Um div não é um elemento do formulário (portanto, nenhum .form propriedade) nem tem um valor. Eu acho que você queria <input> ao invés de <div>.

0
ThiefMaster

Esta é uma pergunta antiga, mas deve funcionar

onclick="this.parentNode.form.submit()"
0
Monarch Wadia