我应该使用FORM标签吗?

4

我一直在使用jQuery构建一个ajax-heavy的网站,通常使用jQuery选择器来引用我想要交互或检索值的个别INPUT/BUTTON/TEXTAREA等元素。

今天早上我突然意识到我已经很久没有使用FORM标签了,我仅通过ajax请求来操作所有东西。我的直觉告诉我这不好,但另一方面,这并不是一个问题(我们目前的需求都得到了满足,而且我不认为会在短时间内出现问题)。

需要注意的一点是:我不关心没有JavaScript情况下的优雅降级(这是一个企业局域网;所有浏览器安装都受到严格规定,所有用户都已知具有javascript)。即便如此,我是否应该开始使用FORM标签?我看不到任何理由。


1
使用表单标签可以通过使用 serialize jQuery 函数轻松创建帖子数据。 - Felipe Sabino
1
我不确定,但也许屏幕阅读器在处理表单中的输入时与在 div 中处理的方式不同。不确定,只是猜测 :) - Mārtiņš Briedis
1
<form>...</form>放进去会那么痛苦吗? - Nate
是的...你有考虑使用jQuery表单插件+ajaxForm吗?http://malsup.com/jquery/form/ - dotjoe
@Nate:这不是“是否有影响”的问题——我的观点更多的是,我不仅没有使用它,甚至没有注意到我没有使用它。所以我只是想问一下,看看我错过了什么功能。谢谢! - loneboat
4个回答

2

好的,表单元素应该放在...表单中,对吧?HTML5规范(以及几乎所有HTML规范)并没有强制要求将<input>等元素放在<form>元素内,但是除非在标记中声明有表单存在,否则您的页面中就没有表单。

我认为,如果jQuery知道正在提交哪个表单,那么处理表单提交会更容易,还有其他一些事情需要考虑。

此外,您还需要考虑禁用JavaScript的用户。即使您不关心这些用户,如果未被jQuery / Ajax等处理,仍然很重要让您的Web应用程序能够处理“传统”的表单提交。


感谢您的输入。请注意,在我最后一段中,我解释了它目前处于企业环境中,我保证启用JS。尽管如此,您的第一句话表达了我今天早上的想法,“等一下,这些表单元素不是应该放在表单中吗?”因此,关于“为什么”的问题。谢谢! - loneboat

2
是的,你仍然应该使用表单标签。如果您想要非常严谨,最好还要有一个非JavaScript回退方案。但无论如何,继续使用<form><fieldset><legend><label>的主要原因是为了符合无障碍性规定。
当涉及到网络无障碍性时,表单确实是个痛点。它们需要完美地操作屏幕阅读器或其他辅助技术才能顺利进行。事实上,根据ADA法律和508条例,所有这些标签在在线制作表单时都是必需的。许多人会争辩联邦法规只适用于政府和州立网站,但您可以告诉那些因网络无障碍问题被起诉的Target公司,情况并非如此。
实际上,遵守规则是一个好主意。就个人而言,使用或不使用AJAX使表单提交非常容易。例如,我目前有几个表单,需要确保它们可以在有或没有JavaScript的情况下使用。所有表单都经过验证,并通过JavaScript提交(是的,它们也通过PHP脚本进行二次验证)。JavaScript提交的脚本是与常规表单通过cURL提交到的同一页。一个处理页面用于两种不同方法,具有相同的结果(以JSON格式传递并通过jQuery或PHP的json_decode解码),只是JavaScript版本更加简洁、优雅和无缝。
总之,我认为包括正确的标签会更有益于您的用户,即使这些好处对您或他们来说并不明显。

1

是的。

当 JavaScript 被禁用时,您仍然可以使用 <form> 将数据提交到服务器。根据有效的 HTML 规则,需要在表单元素周围放置 FORM 标记。辅助工具(如屏幕阅读器)可以使用 FORM 标记向用户提供更多信息。

因此,您应该使用 FORM 标记。:)


JS被禁用在这种情况下不是问题,但您提出的其他观点非常好。谢谢! - loneboat

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接