У меня есть функция проверки формы, которая проверяет, а также проверяет, было ли занято имя пользователя или нет (ajax).Почему эта функция возвращает "undefined"?
Это, как я называю код:
function validate(){
if(usernameValid()){
return true;
}
else {
return false;
}
}
Я также оповещать функцию для того, чтобы увидеть, что она возвращает:
alert(usernameValid());
Проблема заключается в том, что alertbox оповещения «неопределенные» в в некоторых случаях, поэтому моя проверка не перепрыгивает в следующее поле, оно зависает. Чтобы быть более конкретным, он предупреждает «Undefined» во всех случаях, кроме случаев, когда «length === 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;
}
}
Кто-нибудь знает, что это не так, то почему код возвращает неопределенное значение в тех случаях, когда я тестирую «ответ» переменный?
КСТАТИ: Проверка сама по имени пользователя работает (отображается ошибка, когда она должна и т.д.), но она возвращает неопределенное значение ...
Благодаря
Упорядочить пример userNameInvalidFunction(), чтобы я полностью понял? и что вы подразумеваете под «чем-то другим для истины»? – 2010-11-10 11:05:13
@ Camran - например. вместо того, чтобы полагаться на значение «return» вообще, вы просто запускаете другие функции, когда возвращается ответ сервера, думайте об этом как о замене 'return true;' с 'functionToCallWhenValid()' и 'return false;' с ' functionToCallWhenInvalid() '. –
возможно ли вернуть true/false INSIDE эти функции, или вы имеете в виду, что мне нужно вызвать следующую функцию validation_function внутри функцииToCallWhenValid() или, возможно, отобразить сообщение об ошибке внутри функцииToCallWhenInvalid()? – 2010-11-10 11:13:50