最近在公司里做项目的时候遇到一个问题,开发出来的网页需要在Android手机中的浏览器中打开,当在表单中的文本框内输入内容时,如果这时点软键盘中的回车会导致表单被提交,而不是正常的点击按钮提交。
经上网查询了相关资料与自己的测试,下面发出解决的代码:
在表单的onSubmit事件中加入以下代码:
Javascript Code
1
var
sUserAgent
=
navigator.userAgent.toLowerCase();
2 // 判断浏览器是否为Android浏览器
3 var bIsAndroid = sUserAgent.match( / android / i)
4 == " android " ;
5
6 // submit事件的事件源对象,如果是普通的点击按钮提交表单dragObj的值为"buttom",如果是点击软键盘的回车,则值为null
7 var ev = ev || window.event;
8 var target = ev.target || ev.srcElement;
9 var dragObj = target.getAttribute( ' type ' );
10
11
12 if (bIsAndroid && dragObj == null ){
13 // 如果是Android浏览器并且用户是点击的软键盘的回车,则不提交表单
14 return false ;
15 }
2 // 判断浏览器是否为Android浏览器
3 var bIsAndroid = sUserAgent.match( / android / i)
4 == " android " ;
5
6 // submit事件的事件源对象,如果是普通的点击按钮提交表单dragObj的值为"buttom",如果是点击软键盘的回车,则值为null
7 var ev = ev || window.event;
8 var target = ev.target || ev.srcElement;
9 var dragObj = target.getAttribute( ' type ' );
10
11
12 if (bIsAndroid && dragObj == null ){
13 // 如果是Android浏览器并且用户是点击的软键盘的回车,则不提交表单
14 return false ;
15 }