【发布时间】:2011-05-07 19:31:06
【问题描述】:
我有一个表单验证功能,它可以验证并检查用户名是否被使用(ajax)。
我是这样称呼代码的:
function validate(){
if(usernameValid()){
return true;
}
else {
return false;
}
}
我还提醒该函数以查看它返回的内容:
alert(usernameValid());
问题是警报框在某些情况下会提示“未定义”,因此我的验证不会跳转到下一个字段,它会挂起。 更具体地说,它在所有情况下都会发出“未定义”警报,“长度===0”除外,然后它会发出错误警报,这是正确的。
这里是 usernameValid 函数:
function usernameValid(fld) {
if( $('#username').val().length !== 0 ) {
$.post("username_check.php", {
username: $('#username').val()
}, function(response){
response = escape(response);
if(response==1){
$('#username_error_invalid').show();
$('#username_error_empty').hide();
$('#username_error_taken').hide();
return false;
}
else if(response==2){
$('#username_error_taken').show();
$('#username_error_invalid').hide();
$('#username_error_empty').hide();
return false;
}
else {
$('#username_error_taken').hide();
$('#username_error_invalid').hide();
$('#username_error_empty').hide();
return true;
}
});
}
else{
$('#username_error_empty').show();
$('#username_error_invalid').hide();
$('#username_error_taken').hide();
return false;
}
}
任何人都知道出了什么问题,即为什么在我测试“响应”变量的情况下代码返回未定义?
顺便说一句:用户名的验证本身有效(应该显示错误等),但它返回未定义...
谢谢
【问题讨论】:
标签: php javascript jquery html validation