2012-04-13 76 views
-2

如果我们没有设置方法属性上<form>,然后提交,然后它会使用方法GETHTML表单重写方法获取

<form> 
    <input type="submit" name="foo" value="test" /> 
</form> 

如何更改默认的方法为POST,如果我们没有设置方法的属性?

+0

设置方法属性有什么不对? – Quentin 2012-04-13 18:58:05

+0

@Quentin你的意思是什么错? – GusDeCooL 2012-04-13 18:58:55

+0

你为什么不使用method =“POST”? – Philipp 2012-04-13 18:59:42

回答

5

没有常见的方法来避免这一点。如果你想避免它真的很糟糕,你可能需要使用模板语言,或者编译为HTML。

+0

是的,模板语言也可以是解决方案。但是我想知道,也许已经有一些方法可以用纯HTML方式来完成了。 – GusDeCooL 2012-04-13 19:04:24

+1

使用模板+1。如果网站上有这么多表单,并且手动输入了所有HTML,那么你很可能做错了什么。 – Quentin 2012-04-13 19:04:27

+1

没有HTML方法可以为所有表单设置默认方法。 – Quentin 2012-04-13 19:04:53

-2

你不应该,spec say's get is the default method,你不能去改变......

如果你想成为的最佳做法的代价&共同正派,你可以使用jQuery做它像这样懒:

$("form").attr("method","post"); 

但这只是非常懒惰,我永远不会建议使用它。这不是太多的工作就在首位,method="post"

的主要问题与该方法的代码它是JS MUST被激活的形式正确可能提交,因为您的服务器要求POST数据,它如果JS失败,将不知道如何处理GET数据,除非您将它设置为同时获得这两个数据,这可能与首先编写正确的html一样多...

+2

Ewwwww。这太错误了。 – thejh 2012-04-13 19:03:04

+0

@thejh为什么错了?我认为这可能是个好主意。 – GusDeCooL 2012-04-13 19:03:31

+0

如果有人在脚本运行之前提交,该怎么办?如果JS关闭了会怎么样? – thejh 2012-04-13 19:03:39

1

无法更改<form> -Tag的默认行为。你可以输入method =“post”(或者使用编辑器的& replace-feature替换<form<form method='post'或者使用JavaScript,这个属性到处都是这个属性(这对JavaScript禁用的浏览器不起作用)。如果你的页面被生成,也可以使用像PHP这样的服务器端语言来进行替换

+0

这个答案看起来不完整... – thejh 2012-04-13 19:07:09