当变量“ f ”为 FALSE 时,我想返回 TRUE 或FALSE。但是返回永远不会到达浏览器,并且表单会执行其默认操作。
我怎样才能让我的 ELSE 返回一个值? 我试图硬编码一个返回值而不是写' return myFunction(); ' 这行得通,但对我没有帮助,因为我需要从' myFunction() '返回。
不要想太多代码应该做什么,它没有意义,它只是为了演示。
$('#theForm').submit(function()
{
var f = $('#theInput').val(); // input value
if(f == TRUE)
{
alert('Lorem ipsum');
return false;
}
else // If f is FALSE
{
$.post('/php/check.php',{check: f, function(data){myFunction(data);});
function myFunction(data)
{
if(data == 'false')
{
// Do something
return false;
}
else
{
// Do something
return true;
}
}
return myFunction();
}
});
我已经尝试过了,但它仍然没有从'return myFunction()'返回一个值
$('#theForm').submit(function()
{
var f = $('#theInput').val(); // input value
if(f == true)
{
alert('Lorem ipsum');
return false; // Stop default form action
}
else // If f is FALSE
{
var request = $.ajax({
async: false,
url: "/php/checkArea.php",
type: "POST",
data: {data: f},
dataType: "text"
});
request.done(function(data) {
myFunction(data);
});
function myFunction(data)
{
if(data == 'false')
{
// Do something
return false; // Stop default form action
}
else
{
// Do something
return true; // YES PLEASE, do the default form action
}
}
return myFunction();
}
});
在你的帮助下,我终于想出了一个关于异步部分的解决方案。
$('#theForm').submit(function()
{
var f = $('#theInput').val(); // input value
if(f == true)
{
alert('Lorem ipsum');
return false; // Stop default form action
}
else // If f is FALSE
{
var request = $.ajax({
async: false,
url: "/php/checkArea.php",
type: "POST",
data: {data: f},
dataType: "text"
});
request.done(function(data) {
globalData = data; // Global variable
});
function myFunction(globalData)
{
if(globalData == 'false')
{
// Do something
return false; // Stop default form action
}
else
{
// Do something
return true; // YES PLEASE, do the default form action
}
}
return myFunction(globalData); // Call the function with the global variable
}
});
这完美地工作:-)