2023-04-10

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>用户注册</title>
    <script src="https://unpkg.com/vue@next"></script>
    <style>
        .container {
            margin:0 auto;
            margin-top: 70px;
            text-align: center;
            width: 300px;
        } 
        .subTitle {
            color:gray;
            font-size: 14px;
        }  
        .title {
            font-size: 45px;  
        }
        .input {
            width: 90%;
        }
        .inputContainer {
            text-align: left;
            margin-bottom: 20px;
        }
        .subContainer {
            text-align: left;
        }
        .field {
            font-size: 14px;
        }
        .input {
            border-radius: 6px;
            height: 25px;
            margin-top: 10px;
            border-color: silver;
            border-style: solid;
            background-color: cornsilk;
        }
        .tip {
            margin-top: 5px;
            font-size: 12px;
            color: gray;
        }
        .setting {
            font-size: 9px;
            color: black;
        }
        .label {
            font-size: 12px;
            margin-left: 5px;
            height: 20px;
            vertical-align:middle;
        }
        .checkbox {
            height: 20px;
            vertical-align:middle;
        }
        .btn {
            border-radius: 10px;
            height: 40px;
            width: 300px;
            margin-top: 30px;
            background-color: deepskyblue;
            border-color: blue;
            color: white;
        }
    </style>
</head>
<body>
    <div class="container" id="Application">
        <div class="container">
            <div class="subTitle">加入我们,一起创造美好世界</div>
            <h1 class="title">创建你的账号</h1>
            <div v-for="(item, index) in fields" class="inputContainer">
                <div class="field">{{item.title}} <span v-if="item.required" style="color: red;">*</span></div>
                <input v-model="item.model" class="input" :type="item.type" />
                <div class="tip" v-if="index == 2">请确认密码程度需要大于6位</div>
            </div>
            <div class="subContainer">
                <div class="setting">偏好设置</div>
                <input v-model="receiveMsg" class="checkbox" type="checkbox" /><label class="label">接收更新邮件</label>
            </div>
            <button @click="createAccount" class="btn">创建账号</button>
        </div>
    </div>
    <script>
        const App = {
            data() {
                return {
                    fields:[
                        {
                            title:"用户名",
                            required:true,
                            type:"text",
                            model:""
                        },{
                            title:"邮箱地址",
                            required:false,
                            type:"text",
                            model:""
                        },{
                            title:"密码",
                            required:true,
                            type:"password",
                            model:""
                        }
                    ],
                    receiveMsg:false
                }
            },
            computed:{
                name: {
                    get() {
                        return this.fields[0].model
                    },
                    set(value){
                        this.fields[0].model = value
                    }
                },
                email: {
                    get() {
                        return this.fields[1].model 
                    },
                    set(value){
                        this.fields[1].model = value
                    }
                },
                password: {
                    get() {
                        return this.fields[2].model
                    },
                    set(value){
                        this.fields[2].model = value
                    }
                }
            },
            methods:{
                emailCheck() {
                    var verify = /^\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/;
                    if (!verify.test(this.email)) {
                        return false
                    } else {
                        return true
                    }
                },
                createAccount() {
                    if (this.name.length == 0) {
                        alert("请输入用户名")
                        return
                    } else if (this.password.length <= 6) {
                        alert("密码设置需要大于6位字符")
                        return
                    } else if (this.email.length > 0 && !this.emailCheck(this.email)) {
                        alert("请输入正确的邮箱")
                        return
                    }
                    alert("注册成功")
                    console.log(`name:${this.name}\npassword:${this.password}\nemail:${this.email}\nreceiveMsg:${this.receiveMsg}`)
                }
            }
        }
        Vue.createApp(App).mount("#Application") 
    </script>
</body>
</html>
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 读书也是我很多年以来的习惯,但刚开始读的书比较杂,好奇心重,什么流行读什么,畅销榜的书不读好像就觉得自己很孤陋寡闻...
    我爱你我是你我们是一阅读 148评论 0 4
  • 星座与保护神: 水瓶座(1月20日-2月18日),守护神是萨图尔努斯、乌拉诺斯。 双鱼座(2月19日-3月20日)...
    贤知国学阅读 118评论 0 0
  • 一、我的主要问题在于对爆点把握不够 昨天晚上和向日葵老师聊完之后,我发现了我写文中最大的问题是缺乏爆点思维。 缺乏...
    雅风66阅读 232评论 0 1
  • 今天是2023年的第一百天,自从跟着某公众号开始早安打卡后,就知道了很多自己以为很平常却属于特殊的日子。比如今天,...
    莫潸1970阅读 124评论 2 3
  • 思路基本上就是这样了。 自有资金作为基本盘,标的就是中国核电; 融资额度作为创造利润,加仓中国核电的基本保障; 重...
    白天蓝0377阅读 84评论 0 1

友情链接更多精彩内容