52,797
社区成员
发帖
与我相关
我的任务
分享
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>ajax.html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html;charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
<script type="text/javascript">
/**var Ajax = function(){
Ajax.prototype.createAjaxObject = function(){
return new XMLHttpRequest();
}
}*/
//1. 创建AJAX对象
function createAjaxObject(){
if(window.XMLHttpRequest){
return new XMLHttpRequest();
}else {
//IE5.0 IE5.5 IE6.0
return new ActiveXObject('Microsoft.XMLHTTP');
}
}
function isExist(obj){
if(!obj.value){
alert('请输入用户名');
obj.focus();
return;
}
//1. 创建ajax对象
var xmlhttp = createAjaxObject();
url = 'ajax.let?method=checkUsername';
//2. 设置ajax请求的参数 [a.请求方法,b.请求url, c.请求类型(同步 false | 异步 true)] open();
xmlhttp.open('post',url,true);
//3.注册事件回调函数 (监听ajax对象状态改变时被调用)
xmlhttp.onreadystatechange = function(){
//alert("test = " + xmlhttp.readyState);
if(4 == xmlhttp.readyState){ //服务器端完全响应客户端
//获取服务器端响应客户端的信息
if(200 == xmlhttp.status)
alert(xmlhttp.responseText);
if(404 == xmlhttp.status)
alert('当前资源不存在!');
if(500 == xmlhttp.status)
alert('系统正忙。。。。');
}
}
//设置请求参数格式 key=value;
xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
//4.发送ajax请求 send(发送请求数据)
xmlhttp.send('username=' + obj.value);
}
function getAreas(obj){
selectArea = document.getElementById('area');
selectArea.innerHTML = ''; //清空
if(!obj.value){
alert('请选择城市!');
selectArea.disabled = true;
return;
}
//1. 创建ajax对象
var xmlhttp = createAjaxObject();
url = 'ajax.let?method=getAreaByCity&city=' + obj.value + "¶m=" + Math.random();
//2. 设置ajax请求的参数 [a.请求方法,b.请求url, c.请求类型(同步 false | 异步 true)] open();
xmlhttp.open('get',url,true);
//3.注册事件回调函数 (监听ajax对象状态改变时被调用)
xmlhttp.onreadystatechange = function(){
if(4 == xmlhttp.readyState){ //服务器端完全响应客户端
//获取服务器端响应客户端的信息
if(200 == xmlhttp.status){
//获取所有的area元素对象
selectArea.disabled = false;
/*var areas = xmlhttp.responseXML.getElementsByTagName('area');
for(i = 0; i < areas.length; i++){
//alert(areas[i].getAttribute('code') + '\t' + areas[i].text);
option = document.createElement('option');
option.setAttribute('value', areas[i].getAttribute('code'));
option.innerHTML = areas[i].text;
selectArea.appendChild(option);
}*/
var msg = xmlhttp.responseText;
var areas = eval(msg);
for(i = 0; i < areas.length; i++){
option = document.createElement('option');
option.setAttribute('value', areas[i].code);
option.innerHTML = areas[i].name;
selectArea.appendChild(option);
}
}
}
}
//4.发送ajax请求 send(发送请求数据)
xmlhttp.send(null);
}
</script>
</head>
<body>
用户名:<INPUT TYPE="text" NAME="username" onblur="isExist(this)"/>
<a href="ajax.let?method=checkUsername&username=八神山"
onclick="alert(encodeURI('八神山'))">测试</a>
<br/><br/><br/>
<hr>
城市:<select name="city" onchange="getAreas(this)">
<option value="">请选择</option>
<option value="0">长沙</option>
<option value="1">株洲</option>
<option value="2">常德</option>
</select>
地区:<select id="area" disabled></select>
</body>
</html>