【发布时间】:2011-01-14 14:34:16
【问题描述】:
如果用户创建了一个没有方法属性的表单,似乎大多数浏览器都会在提交表单时处理这个问题。所以在 DOM 准备好后检查表单元素,可以看到表单元素对象没有“方法”属性。
然而,IE7 显然在所有没有方法值的表单上设置了默认方法值“GET”。我不想争论 GET 还是 POST 是最明智的默认设置,我只是想找到一种方法让 POST 成为所有浏览器的默认表单方法。
我的问题是我无法判断用户是否为表单方法输入了“GET”值,或者 IE 是否将该值作为默认值注入。如果表单没有方法属性,很明显用户没有指定一个,所以我可以放心地将其默认为 POST。但是,如果我看到表单方法的 GET 值,我无法判断用户是否指定了该值,或者它是否保持黑色并且 IE7 在解析 HTML 时设置了 GET。
有人有什么想法吗?
【问题讨论】:
-
我很难相信 IE7 会将默认方法设置为 GET... 但是,我假设您已经测试过了。
-
@Pekka:确实如此,
formElement.getAttribute("method")将返回GET,即使它尚未由 HTML 设置。好消息是 outerHTML 不会返回它。 -
什么......你想在这里完成什么?我非常怀疑从 HTTP 事务的服务器端将无法判断。但是你为什么想要呢?
-
WTF 除了破坏应用程序之外,还有其他好处吗?我的意思是,默认设置
GET而不是POST。他们在想什么? -
@Pointy 我什至没有在服务器上进行检查,但是您无法从客户端的 HTML 元素中判断 IE 是否设置了默认方法。
标签: javascript internet-explorer dom browser