form表单在ie下按回车不进行表单提交

来源:互联网 发布:淘宝首页广告位怎么抢 编辑:程序博客网 时间:2024/05/18 02:28

我们上网的时候经常都需要进行登陆操作

一般网站登陆框包含的部分有:

用户名、密码、验证码等

我们输入完成之后习惯敲击回车,这个时候表单就会提交,基本代码如下:

<form name="f">

<input type="text" name="username" value="" />

<input type="password" name="psw" value="" />

<input type="submit" value="提交" />

</form>

但是通常我们都会对表单进行前期js处理,比如加入一些字段啊,表单验证啊什么的,所以代码可能修改如下:

<form name="f" onsubmit="return false">

<input type="text" name="username" value="" />

<input type="password" name="psw" value="" />

<input type="submit" onclick="check()" value="提交" />

</form>

这样当点击提交按钮或者敲击回车的时候就会触发check()函数,这个过程没有任何异议

但是!

如果将代码变成这样

<form name="f" onsubmit="return false">>

<input type="text" name="username" value="" />

<input type="submit" onclick="check()" value="提交" />

</form>

也就是去掉密码字段,这个时候在ie下如果你输入完输入框的内容直接敲回车,是不会触发check()函数的

只有点击“提交”按钮才行。但是firefox下是没有问题的……

所以比较好的方式是把check()函数放到表单的onsubmit事件中去,像这样:

<form name="f" onsubmit="check(); return false">

这个问题 应该是ie对表单相应回车事件的理解不一样产生的吧,即认为一般用户只有在登陆的时候,输入了密码了,才响应回车事件。其实这个是不合理的,因为有的表单,没有密码这个字段,比如单独输入验证码,敲击回车提交,就会出现上面的问题。

当然,解决方案代价也不大,呵呵

只是一个feature吧

哈哈

原创粉丝点击