【发布时间】:2011-02-11 21:10:48
【问题描述】:
我阅读了一些 AJAX-Form 教程,例如 this。标签 form 用于 HTML 代码。但是,我认为没有必要。由于我们通过XmlHttpRequest发送HTTP请求,所以发送的数据可以是任何东西,不需要form中的input。
那么,有没有理由在 HTML 中为 AJAX 应用程序添加 form 标签?
【问题讨论】:
标签: html ajax forms xmlhttprequest
我阅读了一些 AJAX-Form 教程,例如 this。标签 form 用于 HTML 代码。但是,我认为没有必要。由于我们通过XmlHttpRequest发送HTTP请求,所以发送的数据可以是任何东西,不需要form中的input。
那么,有没有理由在 HTML 中为 AJAX 应用程序添加 form 标签?
【问题讨论】:
标签: html ajax forms xmlhttprequest
除了已经讨论过的渐进增强(不要让您的网站需要 JavaScript,直到它真的需要),<form> 和onsubmit 将是可靠地捕获 Enter 键所必需的提交。
(当然,您可以尝试在单独的表单字段上捕获按键,但它很繁琐、脆弱,并且永远不会 100% 重现浏览器在构成表单提交方面的本机行为。)
【讨论】:
有时,当用户没有启用 JavaScript 时,使用 ajax 转换其数据的 Web 应用程序要么使用表单作为后备(有时很昂贵,但非常件好事)。
否则,如果应用程序构建并发送 AJAX 请求,则没有令人信服的理由使用 form,除非您确实需要表单元素的极少数特殊情况。在我脑海中浮现:
reset form 按钮时(据我所知,该按钮仅在正确的<form> 中可用)。【讨论】:
field.value= field.defaultValue(类似地defaultChecked/defaultSelected)手动重置表单字段。不过没什么好玩的。
我看到至少两个可能的原因:
我还要补充一点,如果您希望用户输入一些数据,这就是存在<form> 和<input> 标签的原因;-)
使用正确的标签也可以帮助用户——例如,考虑使用某些特定软件导航的盲人用户:这些软件可能对表单和输入字段有特定的行为。
【讨论】:
input 元素 supposed 是 form 的孩子吗? (即使在现实世界中,它们通常不是。)
这真的取决于你在做什么。如果您想获取用户提交的表单内容并使用 AJAX 将其发送到某处,那么您将需要使用表单标签,以便您的用户可以在某处输入他们的数据。
在其他情况下,您不会从表单发送数据,在这种情况下,您将无需担心表单:)
【讨论】: