请高手帮我解释一下这段JavaScript代码
哪位高手能帮我详细讲解一下这段代码....functioncheckTeamNo(flag){varteamNo=document.forms[0].teamNo.val...
哪位高手能帮我详细讲解一下这段代码....
function checkTeamNo(flag){
var teamNo = document.forms[0].teamNo.value;
var url = "./switchdo.do?prefix=/finance&page=/bxTeamNoCheck.do";
var arg = "teamNo=" + teamNo;
http_requestTrip = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_requestTrip = new XMLHttpRequest();
if (http_requestTrip.overrideMimeType) {
http_requestTrip.overrideMimeType("text/xml");
}
} else if (window.ActiveXObject) { // IE
try {
http_requestTrip = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_requestTrip = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_requestTrip) {
alert("Giving up, Cannot create an XMLHTTP instance.");
return false;
}
http_requestTrip.onreadystatechange = function() {processTextResponse(flag);};
http_requestTrip.open("POST", url, true);
http_requestTrip.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
http_requestTrip.send(arg);
}
function processTextResponse(flag) {
if (http_requestTrip.readyState == 4) {
if (http_requestTrip.status == 200) {
var msgflg = http_requestTrip.responseText;
if(msgflg == "fail"){
alert("该结算团号已经存在,不能进行结算!");
document.forms[0].teamNo.focus();
return;
} else{
if(flag=="0"){
document.forms[0].action="./switchdo.do?prefix=/finance&page=/bxFirstBalance.do&actionType=save";
document.forms[0].target="_self";
document.forms[0].submit();
}else{
alert("该结算团号可以进行结算!");
}
}
} else {
alert("There was a problem with the request.");
return;
}
}
} 展开
function checkTeamNo(flag){
var teamNo = document.forms[0].teamNo.value;
var url = "./switchdo.do?prefix=/finance&page=/bxTeamNoCheck.do";
var arg = "teamNo=" + teamNo;
http_requestTrip = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_requestTrip = new XMLHttpRequest();
if (http_requestTrip.overrideMimeType) {
http_requestTrip.overrideMimeType("text/xml");
}
} else if (window.ActiveXObject) { // IE
try {
http_requestTrip = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_requestTrip = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_requestTrip) {
alert("Giving up, Cannot create an XMLHTTP instance.");
return false;
}
http_requestTrip.onreadystatechange = function() {processTextResponse(flag);};
http_requestTrip.open("POST", url, true);
http_requestTrip.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
http_requestTrip.send(arg);
}
function processTextResponse(flag) {
if (http_requestTrip.readyState == 4) {
if (http_requestTrip.status == 200) {
var msgflg = http_requestTrip.responseText;
if(msgflg == "fail"){
alert("该结算团号已经存在,不能进行结算!");
document.forms[0].teamNo.focus();
return;
} else{
if(flag=="0"){
document.forms[0].action="./switchdo.do?prefix=/finance&page=/bxFirstBalance.do&actionType=save";
document.forms[0].target="_self";
document.forms[0].submit();
}else{
alert("该结算团号可以进行结算!");
}
}
} else {
alert("There was a problem with the request.");
return;
}
}
} 展开
2个回答
展开全部
呀呀呀,这个javaScript可不是一般的东东了..
一般我们用javaScript主要是用于表单提交验证或者是一些人性化的提示.都是由浏览器全权负责运行.
而这个javaScript,它关系到服务器交互了.很特殊的东西,所以它还有其他的名字,就是堂堂的ajax.异步请求无刷新效果..
在这里我也不太方便每句来写个注释.
可以在线聊或者你自己去看看ajax的东西能掌握得更加全面.
事实上ajax要实现异步请求,几个必须的准备就是.
1,XMLHttpRequest ---请求对象
你上面那一个N长的IF就是为了创建这个东西.
if (window.XMLHttpRequest)
从这里开始,为什么有这么长呢,主要就是为了处理浏览器的兼容问题,什么
IE啊,火狐啊.IE又分IEX等等,所以就这么长了.
2,请求发到哪去了,需要指定一个URL,通过请求对象的OPEN方法发送.
你的代码就是这句:http_requestTrip.open("POST", url, true);
3,发送之后怎么得到响应呢,就根据状态的不同可得.
你的代码:
http_requestTrip.onreadystatechange = function() {processTextResponse(flag);}
对应的方法:processTextResponse里面关键的几句:
if (http_requestTrip.readyState == 4) {
if (http_requestTrip.status == 200) {
var msgflg = http_requestTrip.responseText;
http_requestTrip.readyState == 4 --请求对象与服务器交互有5种不同的状态,分别为连接,连接成功,然后交互,然后响应,响应成功.分别对应的就是0,1,2,3,4..等于4的时候就是响应成功,就可以取数据了.
http_requestTrip.status == 200 --这是服务器运行的结果,200代表成功,404代表服务器页面找不到,500代表服务器处理异常..
http_requestTrip.responseText; ---这个就是服务器响应给你的东西,也就是你最想得到的..
我大致看了一下,你这个javascript主要功能就是无刷新验证输入框中的数据是否在服务器端(数据库)已经存在
一般我们用javaScript主要是用于表单提交验证或者是一些人性化的提示.都是由浏览器全权负责运行.
而这个javaScript,它关系到服务器交互了.很特殊的东西,所以它还有其他的名字,就是堂堂的ajax.异步请求无刷新效果..
在这里我也不太方便每句来写个注释.
可以在线聊或者你自己去看看ajax的东西能掌握得更加全面.
事实上ajax要实现异步请求,几个必须的准备就是.
1,XMLHttpRequest ---请求对象
你上面那一个N长的IF就是为了创建这个东西.
if (window.XMLHttpRequest)
从这里开始,为什么有这么长呢,主要就是为了处理浏览器的兼容问题,什么
IE啊,火狐啊.IE又分IEX等等,所以就这么长了.
2,请求发到哪去了,需要指定一个URL,通过请求对象的OPEN方法发送.
你的代码就是这句:http_requestTrip.open("POST", url, true);
3,发送之后怎么得到响应呢,就根据状态的不同可得.
你的代码:
http_requestTrip.onreadystatechange = function() {processTextResponse(flag);}
对应的方法:processTextResponse里面关键的几句:
if (http_requestTrip.readyState == 4) {
if (http_requestTrip.status == 200) {
var msgflg = http_requestTrip.responseText;
http_requestTrip.readyState == 4 --请求对象与服务器交互有5种不同的状态,分别为连接,连接成功,然后交互,然后响应,响应成功.分别对应的就是0,1,2,3,4..等于4的时候就是响应成功,就可以取数据了.
http_requestTrip.status == 200 --这是服务器运行的结果,200代表成功,404代表服务器页面找不到,500代表服务器处理异常..
http_requestTrip.responseText; ---这个就是服务器响应给你的东西,也就是你最想得到的..
我大致看了一下,你这个javascript主要功能就是无刷新验证输入框中的数据是否在服务器端(数据库)已经存在
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询