A-A+
jQuery AJAX进行表单验证例子
表单验证用到最多的是jquery来验证了,下面我们介绍一个稍高点了,利用ajax来表单验证了,具体的示例代码如下图所示。
html页面的代码如下:
- <body>
- <form action="form.php" method="post" id="form" onsubmit="return check();">
- <table style="600px;" cellspacing="0">
- <tr>
- <td>用户名</td>
- <td><input type="text" name="name" id="name" /><span id="res"></span></td>
- </tr>
- <tr>
- <td>密码</td>
- <td><input type="password" name="pass" id="pass" /></td>
- </tr>
- <tr>
- <td>确认密码</td>
- <td><input type="password" name="repass" id="repass" /></td>
- </tr>
- <tr>
- <td>手机</td>
- <td><input type="text" name="phone" id="phone" /></td>
- </tr>
- <tr>
- <td>邮箱</td>
- <td><input type="text" name="email" id="email" /></td>
- </tr>
- <tr>
- <td colspan="2"><input type="submit" value="提交" /><input type="reset" value="重置" /></td>
- </tr>
- </table>
- </form>
- </body>
- <script type="text/javascript">
- function check(){
- var name = $("#name").val();
- var pass = $("#pass").val();
- var repass = $("#repass").val();
- var phone = $("#phone").val();
- var email = $("#email").val();
- if(name == ''){
- alert('用户名不能为空');return false;
- }
- if(pass == ''){
- alert('密码不能为空');return false;
- }else if(pass != repass){
- alert('两次密码不一致');return false;
- }
- if(!((/^1[3|5|8|4][0-9]\d{8}$/).test(phone))){
- alert('请输入正确手机号码');return false;
- }
- if(!((/^[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]+$/).test(email))){
- alert('请输入正确邮箱');return false;
- }
- return true;
- }
- $(document).ready(function(){
- $("#name").keyup(function(){
- var xmlhttp;
- if(window.XMLHttpRequest){
- xmlhttp = new XMLHttpRequest();
- }else{
- xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
- }
- xmlhttp.onreadystatechange=function(){
- if(xmlhttp.readyState==4 && xmlhttp.status==200){
- document.getElementById("res").innerHTML=xmlhttp.responseText;
- }
- }
- xmlhttp.open("GET","form.php?="+Math.random()+'&name='+$(this).val(),true);
- xmlhttp.send();
- })
- })
- </script>
form.php文件如下:
- <?php
- header("content-type:text/html;charset=utf-8");
- $name = $_GET['name'];
- //为了测试方便,这里设置默认用户名只能为admin
- if($name == 'admin'){
- echo '<span style="color:green;">该用户名可用</span>';
- }else{
- echo '<span style="color:red;">该不可用</span>';
- }
- ?>
这里偷懒了,默认用户名只能填写admin,实际运用的时候,可以对用户名的存在性和格式等进行其他验证
注意*必须引入jquery.js文件
在输入用户名的时候,给input框一个keyup事件,通过AJAX向form.php文件提交数据,检测用户名是否可用,这样,用户名可不可用,填写 的时候就能知道了。
给表单一个onsubmit事件,当点击提交按钮的时候,进行密码,电话,email的基础验证,如果错误,函数check返回false,阻止表单提交,只有当所有数据都正确填写的时候,返回true;数据才提交给from.php文件,进行相关数据操作。
其实这个还是是纯jquery ajax了,只是js原生的一个ajax表验证例子了,没什么优点,只供各位参考。