表格未在onchange事件中提交

时间:2012-11-09 09:38:59

标签: php forms select drop-down-menu submit

当我从下拉列表中选择任何选项时出现错误,即未定义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>

5 个答案:

答案 0 :(得分:3)

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

$("state").change(function() {
   $(this).closest("form").submit();
});

答案 1 :(得分:2)

可能与<form ... onsubmit="return makeSelection();">有关?!尝试为您的表单设置ID并通过ID访问它。

答案 2 :(得分:2)

您还可以为表单命名=“myform”并使用:onchange =“myform.submit();”

答案 3 :(得分:2)

this.form.submit()无法定义。在此上下文中,“this”指的是您的select-tag。您的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()

答案 4 :(得分:2)

您可以使用javascript函数提交表单..

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

<script>
function submit_my_form(myfield)
{
   myfield.form.submit();
}
</script>