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

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

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

然后页面需要添加jQuery库

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

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

 <script>
//验证和查询部分
function qingqiu()
{
var data=document.form2.neirong;
if(data.value==0){
//表单值为空时弹出提示
$(document).ready(function(){
$(".yanzhengtishi1").slideDown("slow");
});
data.focus(); //光标返回焦点
return false;
}else{
//内容不为空滑动收起提示
$(document).ready(function(){
$(".yanzhengtishi1").slideUp("slow");
});
//然后执行异步请求
var xmlhttp;
if (window.XMLHttpRequest)
{
// IE7+, Firefox, Chrome, Opera, Safari建立对象
xmlhttp=new XMLHttpRequest();
}
else
{
// 针对 IE6, IE5 建立对象
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
//响应提示
document.getElementById("AjaxTishi").innerHTML="正在查询...";
//输出查询结果 document.getElementById("AjaxTishi").innerHTML=xmlhttp.responseText;
}
}
//向query.php服务端程序发送get请求
xmlhttp.open("GET","query.php?t=" + Math.random() + "&q=" + data.value,true);
xmlhttp.send();
}
}
</script>

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

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

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

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

默认情况:

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

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

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

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

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

  1. 利用webuploader插件上传图片文件,完整前端示例demo,服务端使用SpringMVC接收

    利用WebUploader插件上传图片文件完整前端示例demo,服务端使用SpringMVC接收 Webuploader简介   WebUploader是由Baidu WebFE(FEX)团队开发的一 ...

  2. jquery中ajax的简单使用

    一.load() 这是最简单的一个函数,传入一个url他会异步加载该url的内容,然后将内容插入每一个选中的元素中,替换掉其中已经存在的内容. 所以最简单的用法是: $("#myDiv&qu ...

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

    只用JavaScript验证安全不安全谁都知道,答案是不安全,非常的不安全.因为在客户端进行的验证相当于“让用户自己验证自己”,很明显是不靠谱的.你不能避免一些恶意用户人为的修改自己的表单进行欺骗,也 ...

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

    ASP.NET MVC通过Model验证帮助我们很容易的实现对数据的验证,在默认的情况下,基于ValidationAttribute的声明是验证被使用,我们只需 要将相应的ValidationAttr ...

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

    使用AJAX技术发送异步请求 什么是AJAX AJAX指一步Javascript和XML(Asynchronous JavaScript And XML),它是一些列技术的组合,简单来说AJAX基于X ...

  6. Netty实现一个简单聊天系统(点对点及服务端推送)

    Netty是一个基于NIO,异步的,事件驱动的网络通信框架.由于使用Java提供 的NIO包中的API开发网络服务器代码量大,复杂,难保证稳定性.netty这类的网络框架应运而生.通过使用netty框 ...

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

    <script src="http://css.jj.cn/js/jquery.js" type="text/javascript"></sc ...

  8. jquery的ajax发送请求后前端不能实时更新

    在IE下用Ajax请求某一页面,通常会因为缓存的原因而返回上一次的结果,造成混乱(比如说多次请求却没有响应). 错误代码如下: $.get("fetch.php") .done(f ...

  9. 简单的同步Socket程序服务端

    首先,Socket是.Net提供的 System.Net.Sockets命名空间的Scoket类为网络通信提供了一套丰富的方法和属性 服务器按照Socket的基本流程 先创建Socket 在用Bind ...

随机推荐

  1. 解决Oracle忘记密码问题

    在使用ORACLE的过程中,会出现各种各样的问题,各种各样的错误,其中ORA-12899就是前段时间我在将数据导入到我本地机器上的时候一直出现的问题.不过还好已经解决了这个问题,现在分享一下,解决方案 ...

  2. JEECMS插件开发

    在jeecms框架中,有一个简单的插件,它并没有写具体的功能实现,但可以从这个简单的插件中找到如何在jeecms框架中开发框架的方法.      首先创建一个jeecms的框架demo,登录jeecm ...

  3. Process manufacturing和Discrete manufacturing的区别

    Process manufacturing(Process industry) 加工制造,或者加工工业.其一个重要特征是,原材料被加工成成品后,我们再也无法将它恢复成原料,比如,苹果罐头,我们再没法把 ...

  4. Dinic 算法

    #include <bits/stdc++.h> using namespace std; ), M(1e5+); int head[N]; struct Edge{ /* r: resi ...

  5. display & visibility区别

    http://www.cnblogs.com/zhangran/archive/2012/08/29/2662459.html 说明:在学习css的过程中由于其中包含太多的元素.属性等等,总有许多是自 ...

  6. Jquery EasyUI的添加,修改,删除,查询等基本操作介绍

    http://www.jb51.net/article/42016.htm 初识Jquery EasyUI看了一些博主用其开发出来的项目,页面很炫,感觉功能挺强大,效果也挺不错,最近一直想系统学习一套 ...

  7. 高德地图3D版的使用方法

    坐标拾取器: http://lbs.amap.com/console/show/picker 其经纬度与LatLng()方法中的经纬度是对调的 SDK和实例下载: http://lbs.amap.co ...

  8. while循环问题(老师询问问题,学生回答。学生会了可以放学,或者老师讲了10遍,还是没有会的,被迫无奈也要放学。)

    string a=""; ;//声明一个变量,老师重新讲课的次数. && a != "yes") { Console.WriteLine(&qu ...

  9. boost解析json(2)

    "{ "A":1, "B":{ "C":2, "D":3 }, "E":[ {" ...

  10. linux经典命令学习

    本文介绍Linux系统的若干经典命令的常用方法. (一)grep 主要用于搜索文件内容,查看是否跟要求的pattern相匹配. 1.grep -l 'boss' *        显示所有包含boss ...