在通过ajax提交表单的客户端应用程序中,使用html表单元素是否有任何意义?
因为我每次都需要做e.preventDefault()
只是为了确保表单不提交,而是通过ajax发送信息,我认为使用表单元素毫无意义。我错过了什么吗?我问,因为我记得看过我看过的教程中使用的表单,学习反应和vue。
答案 0 :(得分:2)
是的,原因有很多。
表单元素组表单控件。这对使用辅助技术的人(例如屏幕阅读器)特别有用,其中一些具有专用的表单输入模式。
拥有真实的表单允许您使用progressive enhancement(unobtrusive JavaScript的基本要求),这使您可以使用站点robuster并且能够承受a client failing to run the JavaScript。
通过Ajax发送数据要求您使用JavaScript收集所有数据。这可以通过使用表单对象实例化FormData
object来方便地完成。
var data = new FormData(document.forms.formid);
myXhr.send(data);
答案 1 :(得分:1)
是的!语义; http://www.w3schools.com/html/html5_semantic_elements.asp
语义元素清楚地描述了它对浏览器的含义 和开发者。
允许自动填充等功能在浏览器中正常运行。
答案 2 :(得分:1)
首先,它具有语义含义。其次,它允许从表单元素中提取数据的快捷方式:
var myForm = document.getElementById('myForm');
formData = new FormData(myForm);
或访问表单字段的快捷方式:
var myForm = document.getElementById('myForm');
myForm[fieldIndex]
答案 3 :(得分:-2)
我认为您不需要阻止表单提交,只需确保将表单操作属性标记为# 这样它就会停留在同一页面上。