为什么表单在HTML中如此重要?

为什么表单在HTML中如此重要?,html,forms,name-attribute,Html,Forms,Name Attribute,传统上,表单是将数据从客户端发送回服务器的唯一方式。当用户单击表单的submit按钮时,表单中具有name属性的任何元素都将被发送到服务器,服务器可以使用这些元素中任何一个的值。程序员可以将值属性硬编码到元素中,不允许用户更改它,例如复选框、单选按钮和禁用的文本控件,或者允许用户更改值,例如常规文本控件。如果程序员没有硬编码value属性,并且它不是允许用户更改它的元素,我相信如果启用它,它会得到值“true”,如果禁用它,它会得到值“false”“已启用”和“已禁用”对于不同的元素可能意味着不

传统上,表单是将数据从客户端发送回服务器的唯一方式。当用户单击表单的
submit
按钮时,表单中具有
name
属性的任何元素都将被发送到服务器,服务器可以使用这些元素中任何一个的值。程序员可以将
属性硬编码到元素中,不允许用户更改它,例如复选框、单选按钮和禁用的文本控件,或者允许用户更改值,例如常规文本控件。如果程序员没有硬编码
value
属性,并且它不是允许用户更改它的元素,我相信如果启用它,它会得到值
“true”
,如果禁用它,它会得到值
“false”
<代码>“已启用”和
“已禁用”
对于不同的元素可能意味着不同的内容

HTML 5之前的版本要求所有这些元素都以某种形式存在,以便服务器获取它们的值,并且它只获取与
submit
按钮相关联的表单中元素的值,不管这些元素是否具有
name
value
属性。HTML5仍然要求将与表单关联的元素提交给服务器,但它们不再需要位于表单内部。HTML5有办法做到这一点,通常是通过向相关元素添加
form*something*
属性


我的问题是,为什么会发生这一切?表单有什么特别之处,直到最近才成为向服务器发送数据的唯一方式?

我想回答这个问题的最简单方法是:它是需要的,现在仍然需要

是一个html标记,允许您执行
GET
/
POST
/etc.操作,而无需在javascript/serverside中编写任何代码。


我想这就是这个问题的简单答案。当需要的时候。。。有办法。
你可以用其他10种方式来实现这一点,但是普通的html版本是

我想回答这个问题最简单的方式是:它是需要的,现在仍然需要

是一个html标记,允许您执行
GET
/
POST
/etc.操作,而无需在javascript/serverside中编写任何代码。


我想这就是这个问题的简单答案。当需要的时候。。。有办法。 您可以通过10种其他方式来实现这一点,但是普通的html版本是
,它为用户代理定义了一个简单的边界,以便能够识别要提交给服务器的所有元素。它还允许用户代理将方便的默认行为附加到表单和表单的子元素。例如,可以点击enter键并提交表单数据。它还允许一个位置通过表单元素上的属性来指定数据的去向。因此,所有这些行为在默认情况下都是可用的,不需要JavaScript。同时,它还允许通过DOM(form.elements集合)更轻松地访问JavaScript

它之所以发生变化,是因为现在有相当多的站点使用AJAX提交数据,在这些情况下,不需要默认行为。通常,表单可能只是作为一种形式而包含,并且没有相关属性

因此,在HTML5中,他们允许使用旧模式,并为使用AJAX而不需要默认行为的开发人员扩展了功能。或者,对于那些可能需要灵活放置表单元素(在传统层次结构之外)的设计师,同时创建连接并保持语义活跃

为用户代理定义了一个简单的边界,以便能够识别要提交给服务器的所有元素。它还允许用户代理将方便的默认行为附加到表单和表单的子元素。例如,可以点击enter键并提交表单数据。它还允许一个位置通过表单元素上的属性来指定数据的去向。因此,所有这些行为在默认情况下都是可用的,不需要JavaScript。同时,它还允许通过DOM(form.elements集合)更轻松地访问JavaScript

它之所以发生变化,是因为现在有相当多的站点使用AJAX提交数据,在这些情况下,不需要默认行为。通常,表单可能只是作为一种形式而包含,并且没有相关属性


因此,在HTML5中,他们允许使用旧模式,并为使用AJAX而不需要默认行为的开发人员扩展了功能。或者,对于那些可能需要灵活放置表单元素(在传统层次结构之外)的设计师,同时创建连接并保持语义活跃

表单早在AJAX成为一种东西之前就存在了。而且,并非每个人的浏览器都启用了JavaScript。您对基于HTTP的更好的客户机->服务器界面有何建议?您似乎已经回答了自己的问题(同时驳斥了事实上的部分-这是法律上的标准)。对不起,我将更改为法律上的。我问为什么它会成为标准,@SimchaKhabinsky回答得很好。它只允许我们根据各种标准加载动态内容。它不是使用输入字段从用户那里收集数据的替代方法。如果你是这个意思的话,它可以是一种替代方法,尽管它本身不是。它可以取代
submit
按钮,尽管您显然仍然需要某种类型的标签。不过,这些不需要是
输入
元素,表单早在AJAX成为一种东西之前就存在了。而且,并非每个人的浏览器都启用了JavaScript。你会怎么做