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

您可以编写 jquery 函数来选择更改 javascript

$("state").change(function() {
   $(this).closest("form").submit();
});
于 2012-11-09T09:45:04.500 回答
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

this.form.submit()无法定义。在这种情况下,“this”指的是您的选择标签。您的选择标签没有名为“表单”的子项。

要做到这一点,您需要使用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

您可以使用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 回答