Javascript 回调函数返回值
如何使用回调函数返回表单验证的值?这对我不起作用Javascript 回调函数返回值,javascript,ajax,Javascript,Ajax,如何使用回调函数返回表单验证的值?这对我不起作用 <form action="loggedin.php" onsubmit="return test(valid)" method="post"> function test(callback) { var k = ""; var httpRequest = new XMLHttpRequest(); httpRequest.onload = function(){ k = callback(h
<form action="loggedin.php" onsubmit="return test(valid)" method="post">
function test(callback) {
var k = "";
var httpRequest = new XMLHttpRequest();
httpRequest.onload = function(){
k = callback(httpRequest.responseText);
return k;
};
httpRequest.open("POST", "check.php",true);
var a = document.getElementById("email").value;
var b = document.getElementById("pwd").value;
httpRequest.send("email=" + a + "&passwd=" + b);
}
function valid(resp){
alert(resp); // resp is correctly defined here
if(resp == "Correct"){
return true;
}
else{
return false;
}
}
函数测试(回调){
var k=“”;
var httpRequest=new XMLHttpRequest();
httpRequest.onload=函数(){
k=回调(httpRequest.responseText);
返回k;
};
open(“POST”,“check.php”,true);
var a=document.getElementById(“电子邮件”).value;
var b=document.getElementById(“pwd”).value;
httpRequest.send(“email=“+a+”&passwd=“+b”);
}
功能有效(resp){
警报(resp);//此处正确定义了resp
如果(响应=“正确”){
返回true;
}
否则{
返回false;
}
}
我需要使用ajax响应验证表单数据。。我想返回true或false以形成onsubmit方法。。回调函数能返回值吗?AJAX将异步请求发送到所需的位置,这意味着它独立于之后的程序运行。AJAX回调函数的目的是在返回页面时应用返回的内容,因此它不能将值返回到调用它的原始形式 为了减少php文件的使用,可以将check和loggedin文件结合起来,或者清除onsubmit并将其保持为常规HTML表单提交,或者继续使用ajax 无论哪种方式,对代码的更新都会在返回第一个ajax后触发loggedin.php
<form action="loggedin.php" onsubmit="return test(valid)" method="post">
function test(callback) {
var k = "";
var httpRequest = new XMLHttpRequest();
httpRequest.onload = function(){
k = callback(httpRequest.responseText);
return k;
};
httpRequest.open("POST", "check.php",true);
var a = document.getElementById("email").value;
var b = document.getElementById("pwd").value;
httpRequest.send("email=" + a + "&passwd=" + b);
}
function valid(resp){
alert(resp); // resp is correctly defined here
if(resp == "Correct"){
var httpRequest = new XMLHttpRequest();
httpRequest.onload = function(){
// do what needs to be done to the page, like reload
}
httpRequest.open("POST", "loggedin.php", true);
// this is just using the variables from earlier
var a = document.getElementById("email").value;
var b = document.getElementById("pwd").value;
httpRequest.send("email="+ a +"&passwd="+ b);
}
else{
return false;
}
}
函数测试(回调){
var k=“”;
var httpRequest=new XMLHttpRequest();
httpRequest.onload=函数(){
k=回调(httpRequest.responseText);
返回k;
};
open(“POST”,“check.php”,true);
var a=document.getElementById(“电子邮件”).value;
var b=document.getElementById(“pwd”).value;
httpRequest.send(“email=“+a+”&passwd=“+b”);
}
功能有效(resp){
警报(resp);//此处正确定义了resp
如果(响应=“正确”){
var httpRequest=new XMLHttpRequest();
httpRequest.onload=函数(){
//对页面执行需要执行的操作,如重新加载
}
open(“POST”,“loggedin.php”,true);
//这只是使用前面的变量
var a=document.getElementById(“电子邮件”).value;
var b=document.getElementById(“pwd”).value;
httpRequest.send(“email=“+a+”&passwd=“+b”);
}
否则{
返回false;
}
}
所以在提交表单时,您需要验证?您可以使用jquery在ajax中使用success,不是吗?是的,但我正在尝试使用javascript进行回调..所以您需要执行回调而不是ajax success?/在有效函数上,您是否获得响应