我有一个带有地址字段的模态窗口。我试图理解我是否需要在我的地址字段中包裹一个表单标记?
当我按下提交/保存按钮时,我正在调用.post()将地址发送给控制器,如果在Google地图中找到地址,我会更新/保存地址并将一些数据发回填写地图。我也关闭了模态。如果找不到地址,我只会显示错误消息。
我真的需要一个ajax.submit,这里有一个包裹在字段周围的表单标签吗? 它为我的坐姿提供了什么优势?
答案 0 :(得分:1)
如果您没有表单标记,则不能仅将序列化表单对象作为参数传递,您必须手动创建数据对象以传递到提交对象。
你可以在你的ajax params中做data: $("#formId").serialize()
答案 1 :(得分:1)
如果你的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();