javascript html 设计一个登录界面

JavaScript028

javascript html 设计一个登录界面,第1张

注册页面代码:

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>注册</title>

</head>

<body>

<form method="post" onsubmit="return false" id="form">

    <input type="text" name="username" placeholder="用户名"><br>

    <input type="password" name="password" placeholder="密码"><br>

    <input type="password" name="rePassword" placeholder="再次输入密码"><br>

    <input type="submit" onclick="register_user()" value="注册"><br>

</form>

<a href="login.html">去登录</a>

<script>

    var localDB = openDatabase('localDB', '1.0', 'Test DB', 2 * 1024 * 1024)

    localDB.transaction(function (ts) {

        ts.executeSql('CREATE TABLE IF NOT EXISTS user(username,password)')

    })

    function register_user() {

        var username = document.getElementsByTagName("input")[0].value

        var password = document.getElementsByTagName("input")[1].value

        var rePassword = document.getElementsByTagName("input")[2].value

        if(password != rePassword)

        {

            alert("两次输入的密码不同,请重新输入")

        }else

 {

            localDB.transaction(function(ts){

                ts.executeSql("INSERT INTO user (username,password) VALUES ('"+username+"','"+password+"')")

                alert("注册成功")

            })

        }

    }

</script>

</body>

</html>

登录页面代码:

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>登录</title>

</head>

<body>

<form onsubmit="return false" method="post">

    <input type="text" placeholder="用户名"><br>

    <input type="password" placeholder="密码"><br>

    <input type="submit" value="登录" onclick="login()"><br>

</form>

<a href="register.html">去注册</a>

<script>

    var localDB = openDatabase('localDB', '1.0', 'Test DB', 2 * 1024 * 1024)

    localDB.transaction(function (ts) {

        ts.executeSql("SELECT * FROM user",[],function (tx, results) {

            var len = results.rows.length

            if(len<=0)

            {

                localDB.transaction(function (ts) {

                    ts.executeSql('CREATE TABLE IF NOT EXISTS user(username,password)')

                })

            }

        })

    })

    function login() {

        var username = document.getElementsByTagName("input")[0].value

        var password = document.getElementsByTagName("input")[1].value

        localDB.transaction(function (ts) {

            ts.executeSql("SELECT * FROM user WHERE username='"+username+"'",[],function (ts, res) {

                if(res.rows.length<=0)

                {

                    alert("登录失败,用户未注册")

                }else if (password == res.rows[0].password)

                {

                    alert("登录成功,三秒后跳转到百度")

                    setInterval(function () {

                        location.href = "https://www.baidu.com"

                    },3000)

                }else

 {

                    alert("登录失败,密码错误")

                }

            })

        })

    }

</script>

</body>

</html>

以上代码使用了WEB SQL,还请选择合适的浏览器查看。

创建一个页面,名称为"后台",用来表示验证通过后的页面。

在实际项目中,需要把用户输入的用户名和密码与数据库中的相关匹配,可是,原型中没有数据库,如何做呢?

只能是模拟一个。假设用户名是darren,密码也是darren。

在登录按钮的一个用例中这样设置,这是有关用户名的判断。

再为登录按钮增加一个用例,用于有关密码的判断。

有关登录按钮用户名判断的用例设置如下:

预览,当输入的用户名不正确,报错如下:

当输入的用户名存在,密码不正确,报错如下:

再为登录按钮的OnClick事件增减一个用例,用来判断用户名和密码都正确。

预览,当用户名和密码都输入正确,页面跳转到后台页。

当然,对于用户名和密码,可以设置全局变量,在判断的时候读取全局变量的值。

一个全局变量能存储多个用户名或密码吗?

假设有这样的一种存储方式:(darren:darren)(jack:123)。如果把这个存储在全局变量中,就相当于在全局变量中保存了多个用户名和密码。

但问题又来了:是否可以从全局变量中读取出每组用户名和密码呢?

在Axure中设置全局变量。

再来修改登录按钮OnClick事件中有关用户名的用例。现在要判断输入的用户名是否包含在全局变量的所有用户名中。

在有关值的公式中,按如下设置:

在有关用户名的条件按如下设置:

在有关用户名的用例按如下设置:

在判断用户名是否正确的时候,这种情况下,要把用户名和密码拼接起来一起判断。

在有关密码判断的公式按如下设置:

有关密码的条件按如下设置:

有关密码的用例按如下设置:

预览,当输入用户名和密码分别是jack,123的时候,验证通过,登录成功。

总结:

● 在Axure中可以模拟数据库中的数据

● 在设置值的时候可以使用富文本框,在富文本框中也可以使用局部变量

● 全局变量存储键值对的一个小技巧