in 未分类

IE文本域中回车自动提交表单

当表单中只有一个文本域的时候,在文本域输入完后按回车,IE会自动帮你提交,(谢谢Andre提醒,其实这种情况在其他浏览器里也会提交的,我测试了firefox,opera, chrome。safari没测试,不过表现应该和chrome是一样的,所以主流浏览器都会自动提交,而不仅仅是IE)哪怕没定义 submit按钮,也会提交。

这个是今天在解决一个其他BUG的时候,了解到的这个问题,虽然要解决的BUG和这个没关系,这个一会儿再说。

先说这个怎么解决吧,在form里建个隐藏的input标签就可以了,可以这样  <input style:”display:none”/> 。

另外我要说说,大家要慎用IE tester这个东西啊,太不靠谱了,在这个里面执行JS和原生浏览器执行,有很大差别。今天想用这个来解决IE6的一个BUG,一直没进行到要真正解决的部分去,因为我一直以为是上面的那个问题带来的BUG,只到我用机器上的IE8运行了一段测试代码,又用IE tester新建IE8来运行,结果不一样,当时就囧了,我意识到做了一个晚上的无用功了。

只好马上用Virtual BOX安装 XP了,用原生的IE6来解决问题,果然,问题不在那里,很快解决了BUG。

所以建议大家一定要慎用IE tester,尽量用原生的浏览器来测试。

然后今天遇到的实际的BUG,是因为在js中对字符串处理的时候使用的非标准的方法。我想返回字符串中指定位置的字符,我使用了类似PHP的方法:

var a=’hello world’;

var b=a[0];

这样在firefox中是有用的,b是 ‘h’ ,但是在IE下是不起作用的,翻了手册才知道,标准的方法是 charAt().

var b=a.charAt(0);

要这样才是标准的方式,换了这个后,马上就解决了要解决的BUG。

  1. 文本域为唯一表单项时FireFox也会回车自动提交的;
    试下IE Collection吧;
    手册一定要多看的。
    不错的,继续加油。