首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

为了您的幸福,请不要把提交按钮的name或者id设置为submit

2012-09-06 
为了你的幸福,请不要把提交按钮的name或者id设置为submit折磨了我好多天的问题,一直很不甘心啊,还以为jque

为了你的幸福,请不要把提交按钮的name或者id设置为submit

折磨了我好多天的问题,一直很不甘心啊,还以为jquery.validationEngine.js有问题,还在它基础上自己写了个验证框架。结果阴沟里翻船,载在这么一个傻逼的问题上。以下为转载:

?

关于Html form表单的提交,很容易。。。但如果不仔细还是能有很多错误。

?

提交的button name 属性为 submit form的submit方法失效?。代码如下

>??

??发现 submit已经变成 form 的一个属性了,并不是方法。这下明白了吧。把submit(也就是submit方法)覆盖了。所以要注意提交表单name的命名方式不要和form原有的方法,属性相同,这样会导致原来的form属性方法失效。

?

另外一篇,其实不只是IE:

这个不仅仅是IE6的错,而是所有IE的错!!
IE有一个特别随意的功能,就是能够通过Element的name来操作一个Element,有些人觉得这个功能很方便,实际它不仅不符合标准,还会导致IE自己变得莫名其妙。
假如你的Form有一个提交按钮的name="submit",那么,很遗憾,你这个form无论如何都不能通过Javascript来提交,只要你一调用了这个form的submit()方法,IE就会告诉你它不支持这个方法!这不是搞笑吗?哪个浏览器会不支持form的submit()方法?虽然IE不标准,也不至于这样吧?对不起,就是这样。

因为当你调用form的方法submit(),它首先想到的是你的提交按钮!

theForm.submit()这个语句在IE看来并不是调用theForm的submit方法,而是调用了名字为submit的提交按钮!如果你在某个元素对象后面加个括号,会有什么效果?当然就是出错。在IE的独特视角下,上面这个语句与下面这个语句的效果一样:
(theForm.submit)();前一个括号代表了名称为submit的按钮对象,后面那个括号就无法理解了,所以IE告诉你不支持这个方法。

IE整个家族都是如此的丑陋!

热点排行