jquery实现智能表单
现在很多网站的注册模块都可以实现即时检查格式是否正确,这样极大的增强了用户体验,对开发非常有利。
下面的代码是利用jquery实现了对一个表单字段格式的即时检查(包括字段长度、邮箱格式),同时在提交时,再次出发检查事件。
注意这个检查是keyup和focus上为主,利用这两个事件来触发blur(失去焦点)事件。
<!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8" /> <title></title> <link href="css/style.css" rel="stylesheet" type="text/css" /> <script src="jquery-1.3.2.min.js"></script> <script> $(function () { //为每个必填字段后面加上* $("form :input.required").each(function () { var $required = $("<strong class='high'>*</strong>"); $(this).parent().append($required); });
//textbox失去焦点事件 $("form :input").blur(function () { var $parent = $(this).parent(); $parent.find(".formtips").remove(); if ($(this).is('#username')) { if (this.value == "" || this.value.length < 6) { var errorMsg = "请输入至少6位的用户名"; $parent.append('<span class="formtips onError">' + errorMsg + "</span>"); } else { var okMsg = "输入正确" $parent.append('<span class="formtips onSuccess">' + okMsg + '</span>'); } } if ($(this).is('#email')) { if (this.value == "" || (this.value != "" && !/.+@.+\.[a-zA-Z]{2,4}$/.test(this.value))) { var errorMsg = "请输入正确的E-Mail地址"; $parent.append('<span class="formtips onError">' + errorMsg + "</span>"); } else { var okMsg = "输入正确" $parent.append('<span class="formtips onSuccess">' + okMsg + '</span>'); } } }).keyup(function () { $(this).triggerHandler("blur");//keyup和focus利用triggerHandler来触发blur事件 }).focus(function () { $(this).triggerHandler("blur"); }); $("#send").click(function () {//提交按钮事件 $("form .required:input").trigger('blur'); var numError = $('form .onError').length; if(numError) { return false; } alert("注册成功,密码已发到你的邮箱,请查收"); }); }); </script> </head> <body> <form method="post" action=""> <div class="int"> <label for="username">用户名</label> <input type="text" id="username" class="required" /> </div> <div class="int"> <label for="email">邮箱</label> <input type="text" id="email" class="required" /> </div> <div class="int"> <label for="=personinfo">个人资料</label> <input type="text" id="personinfo" /> </div> <div class="sub"> <input type="submit" value="提交" id="send" /> <input type="reset" id="res" /> </div> </form> </body> </html>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话