2014-09-05 58 views
3

这可能是一个愚蠢的问题,但对我来说真的很重要,即使我们使用jQuery Ajax从服务器或数据库传递并检索数据,我们是否真的仍然需要将输入元素包装在<form>一侧?使用AJAX请求时,我还需要Form元素吗?

我的意思,而阿贾克斯方法有喜欢的类型,网址,数据的选择,甚至像的dataType下面

$.ajax({ 
     type: "POST", 
     url:"process.php", 
     data: data, 
     dataType: "JSON" 
}); 

我们还需要形成的?从安全方面来说,我认为我们可以验证用户输入,而不需要表单元素,但我不确定它是否正确? 如果您认为我们仍然需要该表单,那么我们应该如何处理表格属性,如actionmethod?我们应该把它们留空吗? 谢谢

+0

你需要支持不支持JavaScript客户端。如果不是,那就做你喜欢的事。 – epascarello 2014-09-05 20:22:34

+0

[为什么在通过ajax提交时使用表单标记?]的可能重复(http://stackoverflow.com/questions/6309214/why-use-a-form-tag-when-youre-submitting-via- ajax) – Mathletics 2014-09-05 20:23:06

+0

我不明白你为什么不会使用表格。 – Mathletics 2014-09-05 20:23:30

回答

4

不,在使用ajax时,不需要在表单标签中包装输入(或其他)元素。

但是,有时候使用表单构造是一个好主意,比如如果您希望回车键提交表单。

然而,如果您使用的一种形式或提交按钮<input type="submit"那么你必须记得用return false;e.preventDefault();在你的事件代码,以防止从表单提交和刷新页面。例如:

$('#myForm').submit(function(event){ 
    event.preventDefault(); 
    //do your validation, ajax, etc stuff 
}); 

因此,我很少(如果有的话)使用表单标签,而是使用jQuery/js来自己控制ux。

参考:

Why use a form tag when you're submitting via ajax?

2

当使用Ajax时,表单有多种用途。它提供:

  • ,为用户的数据提交到服务器时的JavaScript由于某种原因失败
  • 方便DOM接口的控件里面(formElement.elements.field_id_or_name
  • 语义分组的方式,是(例如)使用读屏软件
  • 处理为按ENTER键来触发在所有领域提交事件

你不严格的需要它,除非你想要一个健壮的,可访问的,可用的页面,而不需要更多的努力。

+1

更不用说将表单标记为“表单”的语义值。 – Mathletics 2014-09-05 20:22:36

相关问题