传统上,表单是从客户端将数据发送回服务器的唯一方法。当用户单击表单的按钮时,表单内具有name
属性的任何元素都将发送到服务器submit
,并且服务器可以使用任何这些元素的值。程序员可以将属性硬编码value
到元素中,并且不允许用户更改它,例如复选框、单选按钮和禁用的文本控件,或者可以允许用户更改值,例如常规文本控制。如果程序员没有对value
属性进行硬编码并且它不是允许用户更改它的元素,我相信它会获取值"true"
,如果它被启用,并且"false"
如果它被禁用。"Enabled"
和"disabled"
对于不同的元素可能意味着不同的东西。
5 之前的 HTML 要求所有这些元素都采用某种形式,以便服务器获取它们的值,并且它只获取与submit
按钮关联的表单中元素的值,无论元素是否具有name
orvalue
属性. HTML5 仍然要求元素与要提交给服务器的表单相关联,但它们不再需要在表单内部。HTML5 有办法实现这一点,通常是通过向form*something*
相关元素添加属性。
我的问题是,为什么会发生这一切?表单有什么特别之处,以至于直到最近它们才成为向服务器发送数据的唯一方式?