マウスクリックを使用してフォームの送信をテストしようとしましたが、フォームが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を使用しています。
div
はフォーム要素ではありません。そのための_this.form
_はありません。
_.form
_があるため、document.forms.form.submit()
(_name="form"
_を実行できます)
次のようなコードを試した場合、コードが機能する可能性があります。
onClick="document.forms["price"].submit();"
あなたの場合のthis
は、実際にはdiv
タグを参照し、フォーム自体への参照を含むドキュメントオブジェクトを参照しません。
フォーム名が「filter-form」の場合は、次のコードを使用します
onclick="return document.forms.filter-form.submit();"
div
はフォーム要素ではありません(したがって.form
プロパティ)も値もありません。あなたが欲しかったと思います<input>
の代わりに <div>
。
これは古い質問ですが、これはうまくいくはずです
onclick="this.parentNode.form.submit()"