如下
01 <!DOCTYPE html>
02 <html>
03 <head>
04 <meta charset="utf-8">
05 <title>有name为action的表单元素时取form的属性action杯具了</title>
06 </head>
07 <body>
08 <form name="mform" action="">
09 <input type="radio" name="action" value="1"/> 动作1
10 <input type="radio" name="action" value="2"/> 动作2
11 <input type="radio" name="action" value="3"/> 动作3
12 <br/>
13 <input type="submit" value="提交"/>
14 </form>
15 <script type="text/javascript">
16 document.mform.onsubmit = function(){
17 alert(this.action);
18 return false;
19 }
20 </script>
21 </body>
22 </html>
后台经常根据动作(action)来判断要调用的逻辑。这时form.action会优先取到表单元素而非form的属性action。所有浏览器中都一致。
这时获取form的属性使用this.getAttribute是安全的。