Ajax (Asynchronous javascript xml) 搜索框核心代码(JQuery) Ajax判断用户名存在核心代码 附:原生js的Ajax代码 其中有json的一句话解释
前端
<script type="text/javascript">
$(function(){
$("#tid").keyup(function(){
//获取当前输入 的值
var value=$(this).val();
//偷偷摸摸发起请求
var url="${pageContext.request.contextPath }/like"
var params="name="+value;
//先清空下方div
$("#did").empty();
$("#did").hide();
if(value){
//有输入值才发请求
$.post(url,params,function(data){ /* $.each(data,function(index,element){
var content=element.name;
var div="<div onmouseover='m1(this)' onmouseout='m2(this)' onclick='m3(this)' style='text-align:left;' >"+content+"</div>";
$("#did").append(div);
});
$("#did").show() */ $(data).each(function(index,element){
alert(element.name);
var div="<div style='text-align:left' onmouseover='m1(this)' onmouseout='m2(this)' onclick='m3(this)'>"+element.name+"</div>";
$("#did").append(div);
})
$("#did").show(); },"json")
}
})
}) function m1(obj){
//修改css样式
$(obj).css("background-color","#ccc");
}
function m2(obj){
$(obj).css("background-color","white");
}
function m3(obj){
//选中 把自己添加到输入框中
var text=$(obj).text();
$("#tid").val(text);
$("#did").empty();
$("#did").hide();
} </script>
后端返回给前端的内容在$.post这个Ajax请求的第三个参数function(data)的data中
data的数据交换格式是json
json有数组[value,value ]和对象{"key":value,"key":value }两种形式 其中value可以为任意类型,所以就出现了各种千变万化的组合,解析的时候看外层 (使用json-lib jar包)
后端
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
// 编码
response.setContentType("text/html;charset=utf-8");
// 获取name参数
String name = request.getParameter("name");
// 调用service查询相关
List<KeyWord> keys = new KeyWordservice().findByName(name);
// 写回去给你
for (KeyWord key : keys) {
System.out.println(key);
}
JSONArray key_json = JSONArray.fromObject(keys);
System.out.println(key_json);
response.getWriter().print(key_json.toString());
} catch (SQLException e) {
e.printStackTrace();
response.getWriter().print("");
}
}
Ajax判断用户名存在核心代码(使用JQuery)
<script>
//页面加载
$(function(){
$("#errorId").hide();
$("#successId").hide();
$("#username").blur(function(){
$("#errorId").hide();
$("#successId").hide();
//获得值
var username = $("#username").val();
if(username){
//ajax访问服务器
$.get("${pageContext.request.contextPath}/CheckUserNameServlet","username="+username,function(data){
if(data>0){
//失败
$("#errorId").show();
$("#successId").hide();
}else{
//成功
$("#errorId").hide();
$("#successId").show();
}
});
}
});
})
</script>
<div class="form-group">
<label for="username" class="col-sm-2 control-label">用户名</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="username" name="username" placeholder="请输入用户名">
</div>
<div class="col-sm-4">
<span id="successId" class="label label-success">用户名可用</span>
<span id="errorId" class="label label-danger">用户名不可用</span>
</div>
</div>
附:原生js的Ajax代码
<input type="button" onclick="sendGet()" value="请求"/> <br/>
<script type="text/javascript">
function sendGet(){
//1 获得ajax引擎
var xmlhttp=null;
// 谷歌、火狐、IE最新浏览器
if (window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}else if (window.ActiveXObject){
//IE老版本浏览器(IE6、7、8 等)
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
//2 设置回调函数
xmlhttp.onreadystatechange = function(){
alert(xmlhttp.readyState);
if(xmlhttp.readyState == 4){
if(xmlhttp.status == 200){
alert("响应数据" + xmlhttp.responseText);
}
}
};
//3 确定请求方式、路径及参数
/* xmlhttp.open("GET","/2level_daan/hello?username=jack&password=1234"); */
xmlhttp.open("POST","/2level_daan/hello");
//4 设置请求编码
xmlhttp.setRequestHeader("content-type","application/x-www-form-urlencoded");//get 不需要
//4 发送请求
/* xmlhttp.send(null); */
xmlhttp.send("username=杰克&password=1234");
}
</script>
Ajax (Asynchronous javascript xml) 搜索框核心代码(JQuery) Ajax判断用户名存在核心代码 附:原生js的Ajax代码 其中有json的一句话解释的更多相关文章
- AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。
AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 不是新的编程语言,而是一种使用现有标准的新方法. AJAX 最大的 ...
- [javascript]原生js实现Ajax
一.首先看JQuery提供的Ajax方法: $.ajax({ url: , type: '', dataType: '', data: { }, success: function(){ }, err ...
- 原生js实现Ajax的原理。
Ajax(Asynchronous JavaScript and XML)表示异步的js与xml. 有别于传统web的同步开发方式. 原理:通过XMLHttpRequest对象向服务器发送异步请求,从 ...
- Ajax工作原理和原生JS的ajax封装
前言: 之所以用ajax作为博客的开篇,是因为无论从ajax的出现还是从它的作用上来说,ajax对于前端无疑是意义重大的.甚至可以说,是ajax带来了前端这个行业.当然,历史并不能说明当下,曾经的辉煌 ...
- 原生js实现ajax封装
一.什么是ajax? 定义:Ajax(Asynchronous Java and XML的缩写)是一种异步请求数据的web开发技术,在不需要重新刷新页面的情况下,Ajax 通过异步请求加载后台数据,并 ...
- 用原生js实现ajax、jsonp
转载: http://www.cnblogs.com/yangheng/p/6065910.html 一.原生js实现ajax $.ajax({ url: '', type: 'post', data ...
- 原生JS发送Ajax请求、JSONP
一.JS原生Ajax Ajax=异步Javascript+XML: ajax是一种数据请求的方式,不需要刷新整个页面.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. ajax的核心 ...
- 原生JS实现Ajax及Ajax的跨域请求
前 言 如今,从事前端方面的程序猿们,如果,不懂一些前后台的数据交互方面的知识的话,估计都不太好意思说自己是程序猿.当然,如今有着许多的框架,都有相对应的前后台数据交互的方法. ...
- 原生js实现ajax与jquery的ajax库,及json
这是一篇笔记博客, Ajax: 和服务器进行数据交换(异步) 用js实现复杂的原理:用于发送请求的对象在不同的浏览器中是不同的 同源策略:ajax发送请求的url地址与服务器地址必须是同一域名,协议, ...
随机推荐
- iTween Scale缩放
void Start () { //键值对儿的形式保存iTween所用到的参数 Hashtable args = new Hashtable(); //放大的倍数 args.Add(, , )); / ...
- 配置matcaffe 遇到的两个坑
1. 问题 (1) Invalid MEX-file '/root/caffe/matlab/+caffe/private/caffe_.mexa64': /matlab/r2016a/bin/gln ...
- 换晶振导致stm32串口数据飞码的解决办法
一般来说,stm32f107都是用标配的晶振,比如8MHz. 但是,如果用别的晶振,比如13.56M的晶振,那串口接收还正常吗? 根据试验结果,很可能会飞码.比如说用串口助手发送的是0x35,但是在串 ...
- Get和Post区别,EncType提交数据的格式详解——转自他人博客的
1. get是从服务器上获取数据,post是向服务器传送数据. 2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到.post是通过 ...
- HDU 1281——棋盘游戏——————【最大匹配、枚举删点、邻接表方式】
棋盘游戏 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status ...
- Window WindowManager 和WindowManager.LayoutParams
<一> Window window是android中的窗口,表示顶级窗口的意思,也就是主窗口,它有两个实现类, PhoneWindow和MidWindow,我们一般的activity对应的 ...
- JQ学习总结之选择器
一.window.onload 和 $(document).ready()区别 1)window.onload 执行时机:必须等待网页中所有的内容加载完毕后(包括图片)才能执行. 编写个数:不能同 ...
- iOS-swift-类和对象
1.类(class) 使用关键字 class 创建一个类.属性直接在类里面声明,属性可以是变量,也可以是常量.方法和函数的创建方法一致. class Shape { var numberOfSides ...
- Spring框架中stopwatch(秒表)
StopWatch对应的中文名称为秒表,经常我们对一段代码耗时检测的代码如下: long startTime = System.currentTimeMillis(); // 你的业务代码 long ...
- gof23 适配器模式
namespace Adapter { class Program { static void Main(string[] args) { //原实现 ClassBase customa = new ...