html / javascript中的制动循环

时间:2014-09-15 09:58:40

标签: javascript html

我有一个代码可以在两个用户的表单上创建用户登录。它工作正常,并在提交正确的用户名和密码时打开链接。但它也打印出错误信息“Du har angivit ettfelaktigtanvändarnamnlerlerösenord!Det kanberopåatt,du har skrivitfelanvändarnamnlelerlösenord,att ditt konto har tagits bort eller att ditt konto har inteaktiveratsännu.Observeraatt det kan ta upp,直到enveckaförossatt aktivera ditt konto。“

如果输入正确的用户名和密码,如何阻止代码打印?

<html>
<head>
<title>
Login page
</title>
</head>
<body>

<form name="login">
Användarnamn <input type="text" name="userid"/>
Lösenord<input type="password" name="pswrd"/>
<input type="button" onclick="check(this.form)" value="Logga in"/>
<input type="reset" value="Rensa"/>
</form>
<script language="javascript">
function check(form)
{
if(form.userid.value == "user1" && form.pswrd.value == "pass 1")
{
window.open('link 1')
}

if(form.userid.value == "usre 2" && form.pswrd.value == "pass 2")
{
window.open('link 2')
}

else
{
document.write('Du har angivit ett felaktigt användarnamn eller lösenord! Det kan bero på att, du har skrivit fel användarnamn eller lösenord, att ditt konto har tagits bort eller att ditt konto har inte aktiverats ännu. Observera att det kan ta upp till en vecka för oss att aktivera ditt konto.');
}
}
</script>
</body>
</html>

3 个答案:

答案 0 :(得分:1)

第一个if是独立的。

使用

if{}
else if{}
else{}

答案 1 :(得分:1)

这不是一个循环。

您正在寻找else if

function check(form) {
    if (form.userid.value == "klasurban" && form.pswrd.value == "97perdan") {
        window.open('https://drive.google.com/file/d/0B_dvGLwXfQ0OUTVheVctMlNzS0E/edit?usp=sharing') /*opens the target page while Id & password matches*/
    } else if (form.userid.value == "klasurban2" && form.pswrd.value == "97dp97") {
// Here ^
        window.open('https://drive.google.com/file/d/0B_dvGLwXfQ0OZEkwU0FvSEtTZHM/edit?usp=sharing') /*opens the target page while Id & password matches*/
    } else {
        document.write('Du har angivit ett felaktigt användarnamn eller lösenord! Det kan bero på att, du har skrivit fel användarnamn eller lösenord, att ditt konto har tagits bort eller att ditt konto har inte aktiverats ännu. Observera att det kan ta upp till en vecka för oss att aktivera ditt konto.');
    }
}

现在,如果第一个条件为真,则只运行附加到它的块;如果不是,则检查下一个if ...之前,因为您没有在第一个else上使用if,后面的代码(检查第二个用户)总是跑。

答案 2 :(得分:0)

首先,您应该通过if ... else来优化代码,如果.. 现在,如果你想打破代码使用return语句,它将工作。

function check(form)
{
     if(form.userid.value == "klasurban" && form.pswrd.value == "97perdan")
     {
        window.open('https://drive.google.com/file/d/0B_dvGLwXfQ0OUTVheVctMlNzS0E/edit?usp=sharing')/*opens the target page while Id & password matches*/
        return true;
     }

   if(form.userid.value == "klasurban2" && form.pswrd.value == "97dp97")
    {
      window.open('https://drive.google.com/file/d/0B_dvGLwXfQ0OZEkwU0FvSEtTZHM/edit?usp=sharing')/*opens the target page while Id & password matches*/
     return true;
    }

    else
    {
          document.write('Du har angivit ett felaktigt användarnamn eller lösenord! Det kan bero        på att, du har skrivit fel användarnamn eller lösenord, att ditt konto har tagits bort eller att ditt konto har inte aktiverats ännu. Observera att det kan ta upp till en vecka för oss att aktivera ditt konto.');
          return true;
    }
  }