function admin_login(form){
    if(form.author.value==''){
        form.author.focus();
        $("msg").innerHTML = "\u8bf7输入用户名!";
        return false;
    }    form.logins.disabled = true;
    form.logins.value = "\u6b63在登錄!请稍后...";
    
    // 我要的效果是5秒后才 return true;
    window.setTimeout("return true;",5000);
    //return true;
}怎么弄?

解决方案 »

  1.   

    这样子是不行的,你可以把return true之后要执行的代码在5秒之后执行,但是不能5秒后才return true; 没办法阻塞线程5秒才return
      

  2.   

    function admin_login(form,callback){
        if(form.author.value==''){
            form.author.focus();
            $("msg").innerHTML = "\u8bf7输入用户名!";
            return false;
        }    form.logins.disabled = true;
        form.logins.value = "\u6b63在登錄!请稍后...";
        
        // 我要的效果是5秒后才 return true;
        window.setTimeout(function(){
            callback.call(null,true);
        },5000);
        //return true;
    }
      

  3.   

    function admin_login(form,callback){
      if(form.author.value==''){
      form.author.focus();
      $("msg").innerHTML = "\u8bf7输入用户名!";
      callback.call(null,false);
      return false;
      }  form.logins.disabled = true;
      form.logins.value = "\u6b63在登錄!请稍后...";
        
      // 我要的效果是5秒后才 return true;
      window.setTimeout(function(){
          callback.call(null,true);
      },5000);
    }
    admin_login(form,function(boolean){
       if(boolean){
           // 代码
       }
    })