最近在公司里做项目的时候遇到一个问题,开发出来的网页需要在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 }