jquery .submit() 与 jquery .click() 的任何优点,如果在事件中调用 .post()



我有一个包含地址字段的模态窗口。我正在尝试了解我是否需要在我的地址字段周围包裹一个表单标签?

当我按下提交/保存按钮时,我正在调用 .post() 将地址发送到控制器,如果通过 Google 地图找到该地址,我会更新/保存地址并发回一些数据以填写地图。我也关闭了模态。如果找不到地址,我只会显示一条错误消息。

我真的需要一个ajax.submit,上面有一个包裹在字段周围的表单标签吗?它为我所拥有的位置提供了什么优势?

如果没有表单标记,则不能仅将序列化的表单对象作为参数传入,必须手动创建要传递到提交对象中的数据对象。

你可以在你的ajax参数中做data: $("#formId").serialize()

如果你的dom中有一个典型的形式,如

<form id="myform" action="/someUrl" method="post">
    <!-- some fields -->
    <input type="submit" id="submitButton" value="Submit" />
</form>
您将单击事件

添加到提交按钮,两者都将触发(首先是单击事件,然后是提交事件)。

在这种情况下,您需要执行以下操作,以避免触发提交事件

$("#submitButton").on('click', function(event){
    event.preventDefault();
    //do necessary stuff.
}); 

请注意,仅当用户在处理表单提交的元素中"单击"并且按下键"Enter"时,使用此方法才有效,事件将不会触发。

我更喜欢始终使用 FORM 标签,至少对我来说更具可读性并且它有一些优点。

例如,我认为要获取所有值,您应该执行以下操作:

无表单标签:

$( "input, textarea, select" ).serialize();

带表单标签:

 $("#myForm").serialize();

最新更新