onclick返回值放在settimeout中不能中断submit

karying 2015-08-05 09:41:42
最近鼓弄个小程序,遇到这个一个问题,都要抓狂了,不知道如何解决
希望各大牛不吝赐教
以下是部分代码,form调用browserRedirect()函数,用来判断设备类型,如果是手机端,则根据某些条件判断Istrue是否false,如果false,则终止提交表单。

var Istrue=true;
function browserRedirect() {
var sUserAgent = navigator.userAgent.toLowerCase();
var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
var bIsMidp = sUserAgent.match(/midp/i) == "midp";
var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
var bIsAndroid = sUserAgent.match(/android/i) == "android";
var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
document.writeln("您的浏览设备为:");
if (bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) {
document.writeln("phone");
/*判断Istrue,用到延时600*/
} else {
document.writeln("pc");

}
setTimeout(function(){return Istrue;},1000);
}
...全文
181 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hch126163 2015-08-06
  • 打赏
  • 举报
回复
不要使用 submit 按钮 用普通按钮,点击进行逻辑判断, 延时后,如果需要提交, form.submit() 来提交表单
豪情 2015-08-06
  • 打赏
  • 举报
回复
那就需要可能在打开一项服务里边做回调处理,不是手动的延时处理。

function service(fn){
    // todo
    fn();
}
service(function(){
    browserRedirect();
});
看看这样可以不
karying 2015-08-06
  • 打赏
  • 举报
回复
引用 2 楼 jslang 的回复:
没看明白为什么要延时
因为要打开一项服务,延时判断是否打开成功
karying 2015-08-06
  • 打赏
  • 举报
回复
引用 1 楼 slwsss 的回复:
直接返回干嘛延时?
因为要打开一项服务,需要延时判断是否打开成功,如果打开失败则Istrue为false,所以用到了延时
karying 2015-08-06
  • 打赏
  • 举报
回复
由于在移动设备的时候对Istrue做了延时判断,最后返回的时候不用延时的话,Istrue的值不会被立即更新??,那么函数的返回值就会一直是true了
karying 2015-08-06
  • 打赏
  • 举报
回复
谢谢各位了
karying 2015-08-06
  • 打赏
  • 举报
回复
引用 6 楼 jikeytang 的回复:
那就需要可能在打开一项服务里边做回调处理,不是手动的延时处理。

function service(fn){
    // todo
    fn();
}
service(function(){
    browserRedirect();
});
看看这样可以不
非常感谢,成功解决。我对延时的理解有问题,回调好呀
天际的海浪 2015-08-05
  • 打赏
  • 举报
回复
没看明白为什么要延时
slwsss 2015-08-05
  • 打赏
  • 举报
回复
直接返回干嘛延时?

87,838

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧