Ajax 简单调用

JS调用Ajax

Ajax又名异步刷新,个人理解为就是局部刷新。进行一下校验作用个人觉得算是半个原创(站在巨人的肩膀上嘛)


html核心代码如下:

		<tr>
			<td>办公名称:</td>
			<td><s:textfield name="build.name" id="name" οnfοcus=""
					οnblur="checkName()"></s:textfield><span style="color: red" id="spid">*</span>
			</td>
		</tr>

js代码

function checkName() {
	var dna = document.getElementById("name").value;
	var checkdnainfo = $("#spid");
	checkdnainfo.html("");
	if ("" == dna) {
		checkdnainfo.html("请添加名称");
		return false;
	} else
		verifydna();
}
// 加入时间戳
// 即当两次dna一样时,浏览器仍然会去调用后台
function convertURL(url) {
	var timstamp = (new Date()).valueOf();
	if (url.indexOf("?") >= 0) {
		url = url + "&t=" + timstamp;
	} else {
		url = url + "?t=" + timstamp;
	}
	return url;
}
function verifydna() {
	var name = document.getElementById("name").value;
	$.get(convertURL("Admin/Building/check.action?name=" + name), null,
			callback);// 这里才是真正调用后台,后台处理完毕后,调用callback函数
}
function callback(data) {
	var checkdnainfo = $("#spid");
	checkdnainfo.html("");
	if (data == "have") {
		checkdnainfo.html("此名称无法使用");
	} else {
		checkdnainfo.html("可以使用");
	}
}

最后java后台代码如下:

	public void serchBuildingName() throws MyException {
		try {
			Writer writer = ServletActionContext.getResponse().getWriter();
			int size = bs.findByName(name).size();
			if (size == 0) {
				writer.write("not_have");//与JS中对应即可
			} else {
				writer.write("have");
			}
			writer.flush();//强制输出,不要忘记关闭流
			writer.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

大功告成,上结果:

1.


2.


最后关于Ajax的JS调用,网上搜索了一下方法一大堆,个人觉得这样写比较简单,关于兼容性问题,个人用的FF+IE10都没有问题,所以具体问题具体分析。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值