我尝试使用鼠标点击来测试表单提交,但表单似乎没有使用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来测试它。
答案 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()"