单击表单中的div元素后,this.form.submit()无法正常工作

时间:2011-12-05 07:30:09

标签: javascript forms onclick submit

我尝试使用鼠标点击来测试表单提交,但表单似乎没有使用vanilla 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 个答案:

答案 0 :(得分:18)

div不是表单元素。它没有this.form

您仍然可以document.forms.form.submit() .form,因为您有name="form"

答案 1 :(得分:4)

如果您尝试过以下内容,您的代码可能会有效:

onClick="document.forms["price"].submit();"
在您的情况下,

this实际上是指div标记,而不是包含对表单本身的引用的文档对象。

答案 2 :(得分:1)

如果您的表单名称是&#34; filter-form&#34;

,请使用以下代码
onclick="return document.forms.filter-form.submit();"

答案 3 :(得分:0)

div不是表单元素(因此没有.form属性)也没有值。我想你想要<input>而不是<div>

答案 4 :(得分:0)

这是一个较旧的问题,但这应该有效

onclick="this.parentNode.form.submit()"