因此我们知道用于将表单数据发送到Web服务器的action
属性。
但我有几个问题:
action
属性,为什么默认情况下会重新加载页面?答案 0 :(得分:4)
form
标记始终是将表单提交给服务器,action
属性的原始定义反映了这一点。
将处理已完成和提交的表单(
action
属性)的程序。
action
attribute was actually a required attribute in HTML 4因此如果未指定则无效。
在HTML5中,它不是必需的,但默认为当前页面的网址。
action
IDL属性必须reflect具有相同名称的内容属性,但获取时除外,当缺少内容属性或其值为空字符串时,the document's address必须而是返回。
method
属性控制如何调用action
属性。其默认值为GET
,表示将进行HTTP调用。
这些属性的无效值默认( ed。
method
和formmethod
)是GET状态。method
属性的缺失值默认值也是GET状态。
因此,如果您未指定任一属性,则默认为对您当前所在页面进行HTTP GET调用。您应该在URL中看到任何表单元素的名称和值作为查询字符串参数。
据我所知,没有计划更改这些默认值,因为它会破坏互联网上的大量表格。
答案 1 :(得分:2)
表单的action属性定义表单数据应发布到哪个位置,默认值为当前位置。因此,在您的情况下,表单会为当前页面生成GET操作,您可能无法在服务器上处理该操作,因此只会再次返回页面。
如果您使用JavaScript处理数据和发布它的AJAX请求,您甚至可能不需要使用表单。如果您想使用表单而不是重新加载页面,则必须在表单的提交处理程序中调用event.preventDefault();
。