jQuery结合Ajax实现简单的前端验证和服务端查询

  上篇文章写了简单的前端验证由传统的JavaScript转向流畅的jQuery滑动验证,现在拓展一下,使用Ajax实现用户体验比较好的异步查询,同样还是从建立一个简单的表单开始

 1 <form name="form2">
 2         <label class="style1">请输入要查询的内容:</label>
 3         <br />
 4         <br />
 5         <input name="neirong" type="text" class="input1" />
 6         <div style="display:none;" class="yanzhengtishi1">内容不能为空哦!</div>
 7         <input type="button" value="查 询" class="anniuxiaoguo" onclick="qingqiu()" />
 8 </form>
 9 <!--下面div显示查询结果-->
10 <div id="AjaxTishi"></div>

和上篇文章一样,注意提示文字属性默认为:display:none;

然后页面需要添加jQuery库

<script type="text/javascript" src="jQuery/jquery-1.11.1.min.js"></script>

最后编写查询按钮绑定的qingqiu()方法,实现非空验证和服务端异步查询

 1 <script>
 2 //验证和查询部分
 3 function qingqiu()
 4 {
 5 var data=document.form2.neirong;
 6 if(data.value==0){
 7     //表单值为空时弹出提示
 8     $(document).ready(function(){
 9                     $(".yanzhengtishi1").slideDown("slow");
10                 });
11             data.focus();  //光标返回焦点
12             return false;
13 }else{
14     //内容不为空滑动收起提示
15     $(document).ready(function(){
16                 $(".yanzhengtishi1").slideUp("slow");
17             });
18     //然后执行异步请求
19     var xmlhttp;
20     if (window.XMLHttpRequest)
21     {
22     // IE7+, Firefox, Chrome, Opera, Safari建立对象
23     xmlhttp=new XMLHttpRequest();
24     }
25     else
26     {
27     // 针对 IE6, IE5 建立对象
28     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
29     }
30     xmlhttp.onreadystatechange=function()
31     {
32         if (xmlhttp.readyState==4 && xmlhttp.status==200)
33         {
34            //响应提示
35             document.getElementById("AjaxTishi").innerHTML="正在查询...";
36           //输出查询结果    document.getElementById("AjaxTishi").innerHTML=xmlhttp.responseText;
37         }
38     }
39     //向query.php服务端程序发送get请求
40     xmlhttp.open("GET","query.php?t=" + Math.random() + "&q=" + data.value,true);
41     xmlhttp.send();
42     }
43 }
44 </script>

注释里面具体作用都已写明,然后简单的编写服务器端程序query.php,实现响应

 1 <?php
 2 //接收请求
 3 header(‘Content-Type:text/html; charset=utf-8‘);
 4 if(empty($_GET[‘q‘])){
 5         //空值验证避免输出错误
 6     echo "内容不能为空!";
 7 }else{
 8     $q=$_GET[‘q‘];
 9     echo "返回值:".$q;
10 }
11 ?>

第3行是编码,这个根据自己编码设置即可,高版本的php中,比如php5.3以上如果直接访问query.php没有参数值会报错,所以建议大家一定要加上参数为空的验证,当然实际验证会更复杂,如果请求值不为空那么会返回一个相同的值。

到现在整个过程就完毕了,测试结果看下图:

默认情况:

值为空时,同样是一个动态的过程:

然后随便输入一个值时,比如Hello!

那么响应的过程同样是动态的,如果服务器响应时间过长,那么下面会输入我们之前定义的"正在查询..."这样的提示,

具体内容就这些了,可以试一试哦

时间: 2024-11-06 17:35:30

jQuery结合Ajax实现简单的前端验证和服务端查询的相关文章

20150220 Comet反向Ajax技术-在线客服系统之服务端

20150220 Comet反向Ajax技术-在线客服系统之服务端 2015-02-20 李海沿 前面我们讲了comet反向Ajax模型原理 以及实现了简单的实时页面聊天系统. (地址:http://www.cnblogs.com/lihaiyan/p/4281049.html) 本文中,我们在它的基础上来实现一个在线客服系统的服务端. 一.搭建页面客服系统框架 1.首先新建一个kefu.html网页 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01

让 ASP.NET JS验证和服务端的 双验证 更简单

只用JavaScript验证安全不安全谁都知道,答案是不安全,非常的不安全.因为在客户端进行的验证相当于“让用户自己验证自己”,很明显是不靠谱的.你不能避免一些恶意用户人为的修改自己的表单进行欺骗,也不能避免第三方对表单进行截获后进行篡改再提交. 所以说,从安全的角度来说,单纯的依靠js验证,是不安全的,任何健壮的系统都必须在后端进行验证. 双验证大大增加了工作量,如何解决? 方案1:笨方法,都写一遍方案2:现有框架 ,比如MVC自带验证支持双向验证 ,不足点是要写 model加attrbute

ASP.NET MVC如何实现自定义验证(服务端验证+客户端验证)

ASP.NET MVC通过Model验证帮助我们很容易的实现对数据的验证,在默认的情况下,基于ValidationAttribute的声明是验证被使用,我们只需 要将相应的ValidationAttribute应用到Model的类型或者属性上即可.对于自定义验证,我们也只需要定义相应的Validation 就可以了,不过服务端验证比较简单,而客户端验证就要稍微复杂一些,本文提供一个简单的实例说明在ASP.NET MVC中实现自定义验证的基本步骤.[源代码从这里下载] 一.AgeRangeAttr

使用AJAX技术发送异步请求,HTTP服务端推送

使用AJAX技术发送异步请求 什么是AJAX AJAX指一步Javascript和XML(Asynchronous JavaScript And XML),它是一些列技术的组合,简单来说AJAX基于XMLHttpRequest让我们在不重载页面的情况下和服务器进行数据交换. 加上JavaScript和DOM(Document Object Model,文档对象模型),我们就可以在接收到响应数据后局部更新页面.XML指的是数据的交互模式,可以是纯文本(Plain Text).HTML或JSON.

一个简单的客户单与服务端程序

实验环境是linux系统,效果如下: 1.启动服务端程序,监听在6666端口上  2.启动客户端,与服务端建立TCP连接  3.建立完TCP连接,在客户端上向服务端发送消息 4.断开连接 实现的功能很简单,但是对于初来乍到的我费了不少劲,因此在此总结一下,如有错点请各位大神指点指点 什么是SOCKET(插口): 这里不用 "套接字" 而是用 "插口" 是因为在<TCP/IP协议卷二>中,翻译时也是用 "插口" 来表示socket的.

websocket 实现 前端vue-socket.io 服务端 koa2(socket.io)

前端:(vue项目,main.js) // The Vue build version to load with the `import` command // (runtime-only or standalone) has been set in webpack.base.conf with an alias. import Vue from 'vue' import App from './App' import router from './router' // import VueNa

ajax提交表单+前端验证小示例

<script src="http://css.jj.cn/js/jquery.js" type="text/javascript"></script> <script src="https://css.cache.jj.cn/js/jjmatch/gbk/core/network.js"></script> <script src="http://css.jj.cn/js/my.c

model验证——remote服务端验证

项目中做的项目使用的mvc的model验证,感觉最难的一个是remote验证,其它的比较简单就不说了: remote验证例子: /// <summary> /// ErrorMessage 表示验证不通过时显示的消息 ///AdditionalFields 表示验证的时候用哪个字段作为参数来传递(通常用于编辑页面的时候验证) /// </summary> [Remote("actionName", "controllerName", Erro

简单的android客户端servlet服务端的交互

android客户端通过GET方式发送数据到服务端,服务端获得数据后,从服务端获取数据库里的信息,并以JSON数据格式返回. 1.GET方式传参的格式: http://127.0.0.1/AndroidService/android/upload?title=aaa&timelength=90的形式 参数是?后的title=aaa&timelength=90.多个参数用&连接. 2.连接服务器发送请求参数并获得服务器返回的数据,客户端获得数据后,主要是对JSON数据的一些解析. /