使用 JQuery 提交表单

新手上路,请多包涵

我在页面上有以下表格:

 <form action="/" method="post">
<select id="SelectedMonth" name="SelectedMonth">
<option>7/1/2017</option>
<option>6/1/2017</option>
</select>
</form>

我正在尝试使用以下 jquery 片段来提交表单。 jquery 代码驻留在表单之外,表单是页面上唯一的表单。

  $("#SelectedMonth").change(function () {
         alert(this.value);
         $('form').submit(function (event) {
         alert("Submitted");
         event.preventDefault();
         });
    });

第一个警报被触发并显示所选值,但从未触发提交。

看起来这很简单,但它不起作用。我错过了什么?

TIA

原文由 John S 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 290
2 个回答

更改操作并将其设为空白并像这样更改功能

$("#SelectedMonth").change(function () {
     $('form').submit();
});

它会起作用

原文由 DEarTh 发布,翻译遵循 CC BY-SA 3.0 许可协议

“为什么它不起作用”这个问题的答案是 .submit(function(){}) 实际上并没有提交表单,而是添加 submit handler 将在提交表单时执行的函数

This method is a shortcut for .on( "submit", handler ) in the first variation, and .trigger( "submit" ) in the third.

Description: Bind an event handler to the "submit" JavaScript event, or trigger that event on an element.

因此,如果您将函数传递给它,它将绑定处理程序。当您在没有参数的情况下触发它时,它实际上会提交表单。

您不需要按钮来提交表单。

所以实际上代码必须是这样的

 $('form').submit(function (event) {
     alert("Submitted");
     event.preventDefault();
 });
 $("#SelectedMonth").change(function () {
     $('form').submit();
});

原文由 SeRRgIO 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题