仅在前一个函数在循环内完成时执行

时间:2014-11-25 19:57:35

标签: javascript synchronization

这里我希望函数f2只在函数f1完成后执行。但是我的代码不等待函数f1完成。我还希望循环等到,除非f1和f2都已完成。

{
    document.querySelector("input[name=username]").value  = "robert";

    var f1=function(k) 
    {  
        document.querySelector("input[name= password]").value  =k;
        document.getElementById("logincaption").click(); 

    }

    var f2=function()
    {
        b=document.getElementById("logincaption").getAttribute("value");
        window.alert(b);
    }

    for(k=1121;k<=1123;k++)
    {
        f1(k);
        f2();
    }    
}

这是代码

<input type="text" maxlength="50" name="username">
<input type="password" autocomplete="off" name="password" maxlength="60">
<input type="submit" id="logincaption" value="Login" name="btnSubmit">`

假设密码1122与用户名匹配,则值从登录更改为登出。我希望在更改时发出警报。

单击按钮调用以下函数checkSubmit()。

function checkSubmit()
{
    if(status!="LIVE")
        {
            document.frmHTTPClientLogin.mode.value=191;
            if(validateLogin())
                {UserValue=replaceAll(document.frmHTTPClientLogin.username.value,"'","''");queryString="mode=191&username="+encodeURIComponent(UserValue)+"&password="+encodeURIComponent(document.frmHTTPClientLogin.password.value)+"&a="+(new Date).getTime()+producttype;if(loginstate!=null){queryString+="&state="+loginstate}
            url="login.xml";
            makeAjaxRequest("POST",queryString,url,loginResponse)}
        }
        else
            {if
                (document.forms[0].btnSubmit.value==logoutValue)
                {document.frmHTTPClientLogin.mode.value=193;queryString="mode=193&username="+encodeURIComponent(document.frmHTTPClientLogin.username.value)+"&a="+(new Date).getTime()+producttype;url="logout.xml";
                makeAjaxRequest("POST",queryString,url,logoutResponse)}
            }return false}

0 个答案:

没有答案