jQuery结合Ajax实现简单的前端验证和服务端查询
上篇文章写了简单的前端验证由传统的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实现简单的前端验证和服务端查询的更多相关文章
- 利用webuploader插件上传图片文件,完整前端示例demo,服务端使用SpringMVC接收
利用WebUploader插件上传图片文件完整前端示例demo,服务端使用SpringMVC接收 Webuploader简介 WebUploader是由Baidu WebFE(FEX)团队开发的一 ...
- jquery中ajax的简单使用
一.load() 这是最简单的一个函数,传入一个url他会异步加载该url的内容,然后将内容插入每一个选中的元素中,替换掉其中已经存在的内容. 所以最简单的用法是: $("#myDiv&qu ...
- 让 ASP.NET JS验证和服务端的 双验证 更简单
只用JavaScript验证安全不安全谁都知道,答案是不安全,非常的不安全.因为在客户端进行的验证相当于“让用户自己验证自己”,很明显是不靠谱的.你不能避免一些恶意用户人为的修改自己的表单进行欺骗,也 ...
- ASP.NET MVC如何实现自定义验证(服务端验证+客户端验证)
ASP.NET MVC通过Model验证帮助我们很容易的实现对数据的验证,在默认的情况下,基于ValidationAttribute的声明是验证被使用,我们只需 要将相应的ValidationAttr ...
- 使用AJAX技术发送异步请求,HTTP服务端推送
使用AJAX技术发送异步请求 什么是AJAX AJAX指一步Javascript和XML(Asynchronous JavaScript And XML),它是一些列技术的组合,简单来说AJAX基于X ...
- Netty实现一个简单聊天系统(点对点及服务端推送)
Netty是一个基于NIO,异步的,事件驱动的网络通信框架.由于使用Java提供 的NIO包中的API开发网络服务器代码量大,复杂,难保证稳定性.netty这类的网络框架应运而生.通过使用netty框 ...
- ajax提交表单+前端验证小示例
<script src="http://css.jj.cn/js/jquery.js" type="text/javascript"></sc ...
- jquery的ajax发送请求后前端不能实时更新
在IE下用Ajax请求某一页面,通常会因为缓存的原因而返回上一次的结果,造成混乱(比如说多次请求却没有响应). 错误代码如下: $.get("fetch.php") .done(f ...
- 简单的同步Socket程序服务端
首先,Socket是.Net提供的 System.Net.Sockets命名空间的Scoket类为网络通信提供了一套丰富的方法和属性 服务器按照Socket的基本流程 先创建Socket 在用Bind ...
随机推荐
- C#二进制文件的读写
sing System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using ...
- 车牌号对应归属地及城市JSON带简码
车牌号对应归属地及城市JSON带简码 car_city.json [ { "code": "冀A", "city": "石家庄&q ...
- swift项目中引入OC框架
- linux 搭建nginx环境(centos6.5)
1.rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rp ...
- html中input输入框屏蔽鼠标右键
<label> <input id="ckdestinationId" type="text" oncontextmenu="ret ...
- 图解equals与hashcode方法相等/不相等的互相关系
图解:比如equals相等的箭头指向hashcode相等,表示equals相等那么必有hashcode相等.而有两个箭头指向别人的表示可能是其中之一,比如hashcode相等,那么有可能equals相 ...
- 杭赛.Triangle(数学推导)
Triangle Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- [Effective JavaScript 笔记] 第13条:使用立即调用的函数表达式创建局部作用域
function wrapElements(a){ var res=[],i,n; for(i=0,n=a.length;i<n;i++){ res[i]=function(){return a ...
- Stanford机器学习---第六讲. 怎样选择机器学习方法、系统
原文:http://blog.csdn.net/abcjennifer/article/details/7797502 本栏目(Machine learning)包括单参数的线性回归.多参数的线性回归 ...
- MyBatis多数据源配置(读写分离)
原文:http://blog.csdn.net/isea533/article/details/46815385 MyBatis多数据源配置(读写分离) 首先说明,本文的配置使用的最直接的方式,实际用 ...