我一直在使用jQuery构建一个ajax-heavy网站。我通常使用jQuery选择器来引用我想与之交互的单个INPUT / BUTTON / TEXTAREA / etc元素(或从中检索值)。
我今天早上才意识到我多年来没有使用过FORM标签 - 我只是通过ajax请求来操纵所有内容。我的直觉告诉我这不好,但另一方面它不是一个问题(我预计它不会很快成为一个问题,我们当前的所有需求都会得到满足)。
有一点需要注意:我不关心缺少JavaScript时的优雅降级(它是企业局域网;所有浏览器安装都受到严格监管,所有用户都知道有javascript)。话虽如此,是否有一些原因我应该开始使用我还没有看到的FORM标签?
答案 0 :(得分:2)
嗯,表单元素应该以...形式出现,对吧? The HTML5 spec(以及几乎任何HTML规范)都没有强制要求在<input>
元素中使用<form>
元素,但除非您声明,否则您的页面中确实没有表单实际上是一种形式的标记。
我认为如果jQuery知道提交哪个表单,你甚至可以更轻松地处理表单提交,等等。
此外,您还禁用了禁用JavaScript的用户。即使您不关心这些用户,如果jQuery / Ajax等没有处理它们,那么您的Web应用程序能够处理“传统”表单提交仍然很重要。
答案 1 :(得分:2)
是的,你仍然应该使用表单标签。如果你想要真正的技术,那么拥有非JavaScript后备也是一个好主意。但无论如何,继续使用<form>
,<fieldset>
,<legend>
和<label>
的主要原因是可访问性合规性。
在网络辅助功能方面,表格确实是一个痛处。它们需要完美地进行,以便使用屏幕阅读器或其他辅助技术进行平稳操作。事实上,根据ADA和Section 508法律法规,在线制作表格时,所有这些标签都是必需的。许多人会争辩说联邦法规只适用于政府和州网站,但你可以tell that to Target,因为网络无障碍问题被起诉。
真的,遵守规则是个好主意。而且,就个人而言,使用或不使用AJAX提交表单非常容易。例如,我目前有几种形式是必不可少的,它们可以在没有JavaScript的情况下使用。所有表单都经过验证并通过JavaScript提交(是的,它们也通过PHP脚本进行了二次验证)。 JavaScript提交的脚本与常规表单通过cURL提交的页面相同。两个不同方法的一个流程页面具有相同的结果(以JSON格式提供,并通过jQuery或PHP的json_decode
解码),只是JavaScript版本更清晰,更优雅,更无缝。
总之,我觉得您的用户可以从包含正确的标签中获益更多,然后将其排除在外,即使这些好处对您或他们来说并不明显。
答案 2 :(得分:1)
是
禁用JavaScript时,使用&lt; form&gt;您仍然可以将数据提交给服务器。考虑到有效的HTML规则,表单元素周围需要FORM标记。而且,屏幕阅读器等辅助工具可以使用FORM标签向用户提供更多信息。
所以,你应该使用FORM标签。 :)
答案 3 :(得分:0)
使用它们的一个很好的理由是,您可以轻松地在<form>
上使用http://api.jquery.com/serialize/和http://api.jquery.com/serializeArray/并更轻松地使用HTTP帖子(如您所述)。