Web邮箱注册提交

需求分析

我们需要一个网页,中间有一个表单,能够实现邮箱注册的初始功能(当然这里不涉及后续数据库层面)。

开始制作

网站如同前几篇文章一样,创建一个基本的html:5,再创建一个表单,详情查看上期。

html代码如下:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>邮箱注册</title>
        <link rel="stylesheet" href="path/your.css">
    </head>
<body>

<div class="container">
    <h1>邮箱注册</h1>
    <form id="myForm">
        <label for="name">名字:</label>
        <input type="text" id="name" name="name" required>

        <label for="email">邮箱:</label>
        <input type="email" id="email" name="email" required>

        <button type="button" onclick="submitForm()">注册</button>
    </form>

</div>

<script src = "path/your.js"> </script>

</body>
</html>

我们还需要让邮箱满足一定的格式,例如QQ邮箱为QQ号加上@qq.com,因此,我们可以通过正则表达式来限制邮箱。

我们先创建一个常量re:

re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;

如果用户输入的邮箱地址能够与我们的re匹配,那么我们就认为邮箱是合法的,当然这个表达式并不是特别完美,还可以尝试优化。完整的JavaScript代码如下:

function validateEmail(email) {
    const re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    return re.test(String(email).toLowerCase());
}

function submitForm() {
    var name = document.getElementById("name").value;
    var email = document.getElementById("email").value;

    if (!validateEmail(email)) {
        alert("请输入有效的邮箱地址。");
        return false;
    }

    alert("表单已提交: " + name + ", " + email);
    return false; // 阻止表单默认提交行为
}

CSS代码不做过多解释,完整代码如下:

body {
    font-family: Arial, sans-serif;
    margin: 0;
    padding: 0;
    background-color: #f4f4f4;
}

.container {
    max-width: 600px;
    margin: 50px auto;
    padding: 20px;
    background-color: #20a098;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

form {
    display: flex;
    flex-direction: column;
    margin-bottom: 20px;
}

label {
    margin-bottom: 5px;
}

input[type="text"],
input[type="email"] {
    padding: 10px;
    margin-bottom: 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
}

button {
    padding: 10px 20px;
    background-color: #5cb85c;
    color: white;
    border: none;
    border-radius: 4px;
    cursor: pointer;
}

button:hover {
    background-color: #4cae4c;
}

.counter {
    margin-top: 20px;
}

当然,这个代码将用户提交的表单直接False了,没有进一步进行处理。有兴趣可以继续实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值