我有一个 javascript 函数,它将数据发送到验证脚本并从那里获取值。 post 请求上的回调函数返回一个布尔值,我试图获取entire函数返回该布尔值。现在,回调函数返回正确的值,但函数本身不返回任何内容。这是代码:
function validate(request_type, request_text) {
$.post("http://www.example.com/ajax/validate.php",{
type: request_type,
text: request_text
}, function(data) {
return (data == "valid");
});
}
我意识到这是一种“同步”调用,这不是 AJAX 的目的,但我在 validate.php 中已经有许多函数(数据库调用等),但我无法在 Javascript 中实现,我看到线程喜欢this one谈论使用某种形式的处理程序。
我将如何编写一个简单的处理程序来使变量data
或布尔比较的结果data == "valid"
当我在中使用它时可用if/else
语句(这是应该使用该函数的地方)?
编辑:例如,其中之一if
将使用布尔结果的语句:
if (!validate('password',pass_new)) {
$('#pass_new').addClass('error');
$('#pass_confirm_new').addClass('error');
$(error_string.format('Please enter a valid password.')).insertAfter('#pass_confirm_new');
$('#pass_text_short').hide();
$('#pass_text_long').show();
编辑:用onsubmit
我的 HTML 表单中的事件:
function valid_pass_sett() {
//code to remove errors left over from previous submissions - snipped
pass_old = $('input[name=pass_old]').val();
pass_new = $('input[name=pass_new]').val();
pass_confirm_new = $('input[name=pass_confirm_new]').val();
//some if statements that don't involve AJAX requests - snipped
if (!validate('password',pass_new)) {
$('#pass_new').addClass('error');
$('#pass_confirm_new').addClass('error');
$(error_string.format('Please enter a valid password.')).insertAfter('#pass_confirm_new');
$('#pass_text_short').hide();
$('#pass_text_long').show();
return false;
}
return true;
}
我尚未编辑此代码以包含已发布的更新代码,但我的问题是我如何return false
从中停止表单提交?