使用onsubmit事件觸發ajax時傳回值怎麼返回
這個是表單
無標題文檔
這個是xmlhttprequest.js頁面
var xmlhttp = false;
if (window.XMLHttpRequest) { //Mozilla、Safari等瀏覽器
xmlhttp=new XMLHttpRequest();
}
else if (window.ActiveXObject) { //IE瀏覽器
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
這個是js2.js頁面裡面有我標記的路線可以看到整個執行的過程。
var flag;
function check_form(){
var username=document.getElementById('username').value;
var identifying_code=document.getElementById('identifying_code').value;
url='login_chk.php?username='+username+'&identifying_code='+identifying_code;
alert('這裡第1步');
xmlhttp.open('get',url,true);
alert('這裡第2步');
xmlhttp.onreadystatechange = function(){
alert('這裡第5步');
if(xmlhttp.readyState == 4){
alert('這裡第6步');
if(xmlhttp.status == 200){
alert('這裡第7步');
msg = xmlhttp.responseText;
alert('這裡第8步');
if(msg==1){
document.getElementById("tishi").innerHTML="輸入正確正在跳轉";
flag=true;
}
else{
document.getElementById("tishi").innerHTML="使用者名稱或者密碼錯誤";
flag=false;
}
alert('這裡第9步');
}
}
//alert(flag);
}
xmlhttp.send(null);
alert('這裡第3步');
if(flag==true){
alert('這裡是true');
alert(flag);
return true;
}
else {
alert('這裡第4步');
alert(flag);
return false;
}
}
這個是login_chk.php頁面
if(strcmp($_GET['username'],'abcd')==0&&strcmp($_GET['identifying_code'],'abcd')==0){
$msg=1;
}
else{
$msg=0;
}
echo $msg;
?>
最重要的是要取得check_form的傳回值,才能決定表單是否能提交。求高手更改代碼取到check_form的傳回值
------解決方案--------------------
xmlhttp.open('get',url,true);
這是非同步通訊,所以你要定義接受返回資料的回呼函數
xmlhttp.onreadystatechange = function(){