表单验证后提交

需求

(1)用户名不能为空
(2)用户名必须在6-14位之间
(3)用户名只能有数字和字母组成,不能含有其它符号(正则表达式)
(4)密码和确认密码一致
(5)统一失去焦点验证
(6)错误提示信息统一在span标签中提示,并且要求字体12号,红色。
(7)文本框再次获得焦点后,清空错误提示信息
(8)最终表单中所有项均合法方可提交

结果演示

在这里插入图片描述

代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>表单验证</title>
		<style type="text/css">
			span{
				font-size: 12px;
				color: red;
			}
		</style>
	</head>
	<body>
		<!-- 思路
		写出用户名+密码+确认密码+提交的表单
		用户名失去焦点就检测是否正确,错误在旁边span显示
			不为空+6-14位之间+数字和字母组成
		确认密码失去焦点就验证是否和第一次是密码一致,错误在旁边span显示
		提交表单
			上述都正确后再提交
		 -->
		<script type="text/javascript">
			/* 
			(1)用户名不能为空
			(2)用户名必须在6-14位之间
			(3)用户名只能有数字和字母组成,不能含有其它符号(正则表达式)
			(4)密码和确认密码一致
			(5)统一失去焦点验证
			(6)错误提示信息统一在span标签中提示,并且要求字体12号,红色。
			(7)文本框再次获得焦点后,清空错误提示信息
			(8)最终表单中所有项均合法方可提交
			 */
			
			window.onload=function(){
				//console.log(11111)
// 				用户名失去焦点就检测是否正确,错误在旁边span显示
// 					不为空+6-14位之间+数字和字母组成
				var myUseName=document.getElementById("useName");
				var myUseNameSpan=document.getElementById("usenameSpan");
				myUseName.onblur=function(){
					//console.log(11111)
					// 去除掉前后空白
					var nameArr=myUseName.value.trim();
					//console.log(nameArr);
					//(1)用户名不能为空
					if(nameArr==""){
						myUseNameSpan.innerHTML="用户名不能为空";
					}
					else{
						//(2)用户名必须在6-14位之间
						if(nameArr.length>14||nameArr.length<6){
							myUseNameSpan.innerHTML="用户名必须在6-14位之间";
						}
						else{
							//(3)用户名只能有数字和字母组成,不能含有其它符号(正则表达式)
							var zhengZeUseName=/^[a-zA-Z0-9]+$/;
							var ok=zhengZeUseName.test(nameArr);
							if(!ok){
								myUseNameSpan.innerHTML="用户名只能有数字和字母组成";
							}
							else{
								myUseNameSpan.innerHTML="";
							}
						}
					}
				}
				
				// 确认密码失去焦点就验证是否和第一次是密码一致,错误在旁边span显示
				var myConPassword=document.getElementById("conPassword");
				var myConPasswordSpan=document.getElementById("conPasswordSpan");
				myConPassword.onblur=function(){
					//拿到之前的密码
					var firstPassword=document.getElementById("password").value;
					//console.log(firstPassword);
					//验证是否和第一次是密码一致
					if(firstPassword!=myConPassword.value){
						myConPasswordSpan.innerHTML="密码和确认密码不一致";
					}
					else{
						myConPasswordSpan.innerHTML="";
					}
				}
				
				//用户名或者确认密码有焦点的时候,旁边的span为空
				myUseName.onfocus=function(){
					myUseNameSpan.innerHTML="";
				}
				myConPassword.onfocus=function(){
					myConPasswordSpan.innerHTML="";
				}
				
// 				提交表单
// 					上述都正确后再提交
				//让用户名+确认密码都失去焦点,重新验证一下
				//判断两个span是否为空
				document.getElementById("tiJiaoButton").onclick=function(){
					//先获取焦点才能再失去
					myUseName.focus();//触发文本框的获取焦点事件
					myUseName.blur();//触发文本框的失去焦点事件
					
					// 验证密码,怎么验证密码?让确认密码失去焦点
					myConPassword.focus();
					myConPassword.blur();
					
					console.log("用户名span的值="+myUseNameSpan.innerHTML);
					console.log("确认密码span的值="+myConPasswordSpan.innerHTML);
					//判断两个span是否为空
					if(myUseNameSpan.innerHTML==""&&myConPasswordSpan.innerHTML==""){
						//提交
						document.getElementById("myForm").submit();
					}
				}
				
			}
		</script>
		
		<!-- 思路
		写出用户名+密码+确认密码+提交的表单
		用户名失去焦点就检测是否正确,错误在旁边span显示
			不为空+6-14位之间+数字和字母组成
		确认密码失去焦点就验证是否和第一次是密码一致,错误在旁边span显示
		提交表单
			上述都正确后再提交
		 -->
		 
		 <!-- 写出用户名+密码+确认密码+提交的表单 -->
		 <form id="myForm" action="http://localhost:8080/oa/save" >
		 	用户名:<input type="text" name="useName" id="useName" /> <span id="usenameSpan"></span>
		 	<br>
		 	 密 码 :<input type="password" name="password" id="password" />
		 	<br>
		 	确认密码:<input type="password" name="conPassword" id="conPassword" /> <span id="conPasswordSpan"></span>
			<br>
		 	<input type="button" value="提交" id="tiJiaoButton"/>
		 </form>
		 
	</body>
</html>

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个简单的jQuery表单验证提交的例子: ```html <form id="myform"> <label for="username">用户名:</label> <input type="text" id="username" name="username"><br> <label for="password">密码:</label> <input type="password" id="password" name="password"><br> <input type="checkbox" id="allow" name="allow" checked> <label for="allow">同意协议</label><br> <button type="submit">提交</button> </form> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <script> $(function() { var $username = $('#username'); var $password = $('#password'); var $allow = $('#allow'); var $form = $('#myform'); // 验证用户名 function validateUsername() { var value = $username.val(); if (!value) { alert('用户名不能为空'); return false; } return true; } // 验证密码 function validatePassword() { var value = $password.val(); if (!value) { alert('密码不能为空'); return false; } return true; } // 验证同意协议 function validateAllow() { if (!$allow.prop('checked')) { alert('请同意协议'); return false; } return true; } // 提交表单 function submitForm() { alert('提交成功'); $form.submit(); } // 绑定提交事件 $form.submit(function(event) { event.preventDefault(); // 阻止默认提交行为 if (validateUsername() && validatePassword() && validateAllow()) { submitForm(); } }); }); </script> ``` 该例子中,我们使用jQuery选择器获取表单元素,并定义了三个验证函数:`validateUsername()`、`validatePassword()`和`validateAllow()`,分别用于验证用户名、密码和同意协议是否勾选。在提交表单时,我们通过`event.preventDefault()`阻止了默认的表单提交行为,并在验证通过后调用`submitForm()`函数提交表单。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

唐维康

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值