点击按钮后,只有通过数据校验才能提交

该博客详细介绍了如何使用HTML、JavaScript和正则表达式实现一个注册表单的验证,包括用户名、邮箱、城市联动下拉列表和密码确认等输入限制。用户必须填写包含至少8个字符且包含字母和数字的用户名,选择城市,输入符合邮箱格式的电子邮件,以及两次输入相同的密码。此外,还实现了省份和城市联动下拉列表的功能。
摘要由CSDN通过智能技术生成

完成以下界面,点击按钮后,只有通过数据校验才能提交

(使用正则表达式进行输入框格式限制,邮箱格式限制,实现联动下拉列表)
其中
1.用户名长度不小于8,必须包括字母,数字;
2.城市为联动下拉列表
3.电子邮件必须符合邮箱格式
4.所有*为必填项
5.两次密码必须相同

示例:

 代码实现:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>注册信息</title>
    <script>
        var provinces=["黑龙江省","山东省","辽宁省"];
        var citys=[["双鸭山市","哈尔滨市","绥化市","黑河市"],
		["济南市","青岛市","烟台市"],
		["沈阳市","大连市","抚顺市","鞍山"]];
        window.onload=function (){
            //省份城市下拉列表事件
            //省份下拉列表事件
            var p=document.getElementById("province");
            p[0]=new Option("---省---","-1");
            for(var i=0;i<provinces.length;i++){
                p[i+1]=new Option(provinces[i],i);
            }
            //城市下拉列表事件
            p.onchange=function (){
                var v=p.value;
                var c=document.getElementById("city");
                c.length=0;
                c[0]=new Option("---市---","-1");
                for(var j=0;j<citys[v].length;j++){
                    c[j+1]=new Option(citys[v][j],j);
                }
            }
            //提示问题下拉列表事件
            var questions=["你初中同桌的名字","你的爱好","你最喜欢的宠物"];
            var q=document.getElementById("question");
            q[0]=new Option("--请选择--","-1");
            for (var i=0;i<questions.length;i++){
                q[i+1]=new Option(questions[i],i);
            }

            var btn_u=document.getElementById("username");
            var btn_email=document.getElementById("email");
            var btn_passwordagine=document.getElementById("password_agine");
            //用户名输入限制
            btn_u.onchange=function (){
                var usn=document.getElementById("username").value;
                var exp=new RegExp("^\\w{8,}$");//用户名长度不小于8位
				if(usn==""){
					alert("用户名不能为空");
					return;
				}
				if(exp.test(usn)){
                    alert("你的用户名成功输入");
                }else{
                    alert("用户名格式不正确");
                }
            }
            //邮箱输入限制
            btn_email.onchange=function(){
                var ema=document.getElementById("email").value;
                var expemail=new RegExp("^([a-zA-Z]|[0-9])(\\w|\\-)+@[a-zA-Z0-9]+\\.([a-zA-Z]{2,4})$");
                if (expemail.test(ema)){
                    alert("邮箱成功输入");
                }else{
                    alert("邮箱格式不正确");
                }
            }
            //密码设置两次必须相同限制
            btn_passwordagine.onchange=function (){
                var pasag=document.getElementById("password_agine").value;
                var pas=document.getElementById("password").value;
				if(pas==""){
					alert("密码不能为空");
					return;
				}
                if (pas==pasag){
                    alert("密码设置成功");
                }else{
                    alert("第二次密码与第一次不符");
                }
            }
        }
		
    </script>
</head>

<body>
<form >
	<table>
		<tr height="60">
			<td align="right">您想要的用户名:<font color="red">*</font></td>
			<td>
				<input type="text" id="username" required="required">
			</td>
		</tr>
		<tr>
			<td align="right">您的性别:<font color="red">*</font></td>
			<td><input type="radio" name="sex" value="1" checked>男<input type="radio" name="sex" value="2">女</td>
		</tr>
		<tr height="60">
			<td align="right">您来自:<font color="red">*</font></td>
			<td>
				<select id="province">

				</select>
				<select id="city">

				</select>
			</td>
		</tr>
		<tr >
			<td align="right">提示问题:<font color="red">*</font></td>
			<td>
				<select id="question">

				</select>
			</td>
		</tr>
		<tr height="60">
			<td align="right">答案:<font color="red">*</font></td>
			<td><input type="text" id="answer" required="required"></td>
		</tr>
		<tr>
			<td align="right">电子邮件地址:<font color="red">*</font></td>
			<td><input type="text" id="email"  required="required" ></td>
		</tr>
		<tr height="60">
			<td align="right">设置密码:<font color="red">*</font></td>
			<td><input type="password" id="password" required="required"></td>
		</tr>
		<tr>
			<td align="right">再次输入密码:<font color="red">*</font></td>
			<td><input type="password" id="password_agine" required="required"></td>
		</tr>
		
		<tr align="center" height="60">
			
			<td colspan="2">
				<input type="button" value="同意以上服务条款,提交注册信息" onclick="loginOnclick();">
			</td>
		</tr>
	</table>
</form>

</body>
</html>

显示效果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aigo-2021

您的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值