js表单提交数据并进行验证

表单提交数据并进行验证 模拟注册填写信息
html页面

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>表单提交</title>
		<style>
			input[type="text"],input[type="password"]{
				width: 250px;
			}
		</style>
	</head>
	<body>
		<form action="index.html" method="get" onsubmit="return ons()"><!--οnsubmit="return ons()"-->
			<table align="center">
				<tr>
					<th>会员注册</th>
				</tr>
				<tr>
					<td>用户名 : </td>
					<td><input type="text" id="username" name="username" required placeholder="至少含有一位字母" /></td>
				</tr>
				<tr>
					<td>密码 : </td>
					<td><input type="password" id="password" name="password" required placeholder="必须要有数字和字母,且最少不能少于六位" /></td>
				</tr>
				<tr>
					<td>确认密码 : </td>
					<td><input type="password" id="pass" name="pass" required /></td>
				</tr>
				<tr>
					<td>姓名 : </td>
					<td><input type="text" id="name" name="name" required  /></td>
				</tr>
				<tr>
					<td>性别 : </td>
					<td>
						<input type="radio" name="radio" value="" /><input type="radio" name="radio" value="" /></td>
				</tr>
				<tr>
					<td>爱好:</td>
					<td>
						<input type="checkbox" value="听歌" name="checkb" /> 听歌
						<input type="checkbox" value="看书" name="checkb" /> 看书
					</td>
				</tr>
				
				<tr>
					<td>出生日期:</td>
					<td>
						<input type="date" id="dateUser" /> 
					</td>
				</tr>
				<tr>
					<td><button >提交</button></td>
				</tr>
			</table>
		</form>
	</body>
</html>

js代码

		<script>

			function ons(){
				//获取用户名
				var username = document.getElementById("username").value;
				//获取密码
				var pass1 = document.getElementById("password").value;
				//获取确认的密码
				var pass2 = document.getElementById("pass").value;
				//获取姓名
				var name = document.getElementById("name").value;
				//获取性别数组
				var radArray = document.getElementsByName("radio");
				//获取爱好数组
				var checkArray = document.getElementsByName("checkb");
				//获取日期
				var dateUser = document.getElementById("dateUser").value;
				//正则表达式判断用户名格式是否正确
				if(!regular(username,/[a-zA-Z][a-zA-Z0-9]*/)){
					alert("请输入正确格式的账号(至少含有一位字母)");
					return false;
				}
				
				//正则表达式判断密码格式是否正确
				if(!regular(pass1,/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,}$/)){
					alert("请输入正确格式的密码(必须要有数字和字母,且最少不能少于六位)");
					return false;
				}
				//判断第二次输入的密码是否与第一次输入的相同
				if(!(pass1==pass2)){
					alert("两次输入的密码不相同");
					return false;
				}
				//获取性别
				var rad;
				//判断选择的性别
				for (let i=0; i<radArray.length; i++) {
					let flag = radArray[i].checked;
					if(flag){
						rad = radArray[i].value;
					}
				}
				//判断是否选择了性别
				if(rad == undefined){
					alert("必须选择性别");
					return false;
				}
				
				//获取爱好
				var check="";
				var checkedArr = new Array();
				//将多个选中的爱好拼接
				for (let i=0,j=0; i<checkArray.length; i++) {
					let flag = checkArray[i].checked;
					if(flag){
						checkedArr[j++] = checkArray[i];
					}
				}
				//将爱好的内容拼接
				for (let i=0; i<checkedArr.length; i++) {
					if(i == checkedArr.length-1){
						check += checkedArr[i].value;
					}else{
						check += checkedArr[i].value +",";
					}
				}
				//判断是否选择了爱好
				if(check == ""){
					alert("至少选择一项爱好");
					return false;
				}
				
				console.log(check);
				if(dateUser == ""){
					alert("请选择出生日期");
					return false;
				}
				
				alert("提交的数据为:\n用户名:" + username + "\n密码:" + pass1 
					+ "\n姓名:" + name + "\n性别:" + rad + "\n爱好:" + check
					+ "\n出生日期:" + dateUser
				)
				
				return true;
				//正则判断
				function regular(str,reg){
//					let reg1 = new RegExp(reg);
					let reg1 = reg;
					return reg1.test(str);
				}
		}
		</script>

效果图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,这是一个非常常见的问题。提交表单前进行 Ajax 验证的主要目的是为了在客户端验证表单数据的有效性,以避免不必要的服务器端请求和响应。这可以提高用户体验和减轻服务器压力。下面是一个简单的示例: 1. 在 HTML 表单中添加一个 id,例如 "myForm"。 ``` <form id="myForm" method="post" action="submit.php"> <input type="text" name="username" placeholder="用户名"> <input type="password" name="password" placeholder="密码"> <button type="submit">提交</button> </form> ``` 2. 在 JavaScript 中使用 jQuery 库,绑定表单提交事件,阻止默认行为,并发送 Ajax 请求。 ``` $(document).ready(function() { $('#myForm').submit(function(e) { e.preventDefault(); // 阻止表单默认提交行为 var username = $('input[name="username"]').val(); var password = $('input[name="password"]').val(); $.ajax({ url: 'validate.php', type: 'post', data: { username: username, password: password }, success: function(response) { if (response == 'valid') { $('#myForm').unbind('submit').submit(); // 取消表单提交事件绑定并重新提交 } else { alert('请检查您的用户名和密码!'); } } }); }); }); ``` 3. 在服务器端 PHP 脚本中处理 Ajax 请求,验证表单数据的有效性,并返回相应的结果。 ``` <?php $username = $_POST['username']; $password = $_POST['password']; if ($username == 'admin' && $password == 'password') { echo 'valid'; } else { echo 'invalid'; } ?> ``` 这是一个简单的示例,你可以根据你的具体需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

java.小小白

生活不易

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

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

打赏作者

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

抵扣说明:

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

余额充值