2

ドロップダウンからオプションを選択するとエラーがスローされます。つまり、this.form.submit()が定義されていません -私のコードは次のようになります。

<form action="entity_report.php" method="GET" onsubmit="return makeSelection();">
    <div align="center"">
      <select name="state" onchange="this.form.submit();">
        <option>Choose One To Submit This Form</option>
        <option value="CA">CA</option>
        <option value="VA">VA</option>
     </select>
   </div>
   <input type="submit" value="Click here">
</form>
4

5 に答える 5

3

javascriptの選択変更のためのjquery関数を書くことができます

$("state").change(function() {
   $(this).closest("form").submit();
});
于 2012-11-09T09:45:04.500 に答える
2

this.form.submit()定義できません。このコンテキストでは、「this」は選択タグを指します。select-tagには、「form」という子がありません。

nameこれを正しく行うには、属性を使用してフォームに名前を付ける必要があります。

<form name="myform" action="entity_report.php" method="GET" onsubmit="return makeSelection();"> 
... 
</form>

ドキュメントを介してアクセスします。

<select name="state" onchange="document.myform.submit();">

編集
テスト中に、フォームを手動で送信したときにonsubmitイベントが呼び出されないことがわかりました。document.myform.onsubmit();私が見つけた回避策は、への呼び出しの前に追加することですsubmit()

于 2012-11-09T09:50:53.547 に答える
2

おそらく<form ... onsubmit="return makeSelection();">?!フォームにIDを設定し、IDを介してアクセスしてみてください。

于 2012-11-09T09:47:43.057 に答える
2

フォームにname="myform"を付けて、次を使用することもできます:onchange = "myform.submit();"

于 2012-11-09T09:50:42.690 に答える
2

javascript関数を使用してフォームを送信できます。

<select name="state" onchange="submit_my_form(this);">

<script>
function submit_my_form(myfield)
{
   myfield.form.submit();
}
</script>
于 2012-11-09T10:44:02.010 に答える