У меня возникла проблема с проверкой доступности электронной почты с пользовательской функцией LiveValidation: она продолжает отправлять обратно, что почта уже используется, даже если она не является " т.Chech Имя пользователя (электронная почта) Доступность с LiveValidation.Custom Function
Может кто-нибудь, пожалуйста, помогите мне в этом?
- EDIT--
Я понял, что функция check_availability
не может возвращать истинным или ложным из вызова Ajax. Так что я почти там, мне просто нужно заставить функцию вернуть правильное значение bool.
Это мой код до сих пор:
JS файла:
//function to check username availability
var check_availability = function(){
//get the username
var email = $('#email').val();
//use ajax to run the check
$.post("checkEmail.php", { email: email },
function(result){
//if the result is 1
if(result == 1){
//show that the username is available
return true;
}else{
//show that the username is NOT available
return false;
}
});
// Validation
var mail = new LiveValidation('email', { validMessage: "Ok!" });
mail.add(Validate.Custom,{failureMessage:"E-mail is al in gebruik!",
against: function(){ return check_availability() }
});
checkEmail.php
файл:
<?php
require_once 'db_config.php';
//Controleren of e-mail adress al in gebruik is
$sql_select_email = "SELECT email from tblUsers WHERE email = '".mysql_real_escape_string($_POST['email'])."'";
if (($result_select_email = mysql_query($sql_select_email)) === false)
{
# als de query fout is -> foutafhandeling
echo showSQLError($sql_select_email,mysql_error(),'Fout bij het opvragen van de gegevens.');
}
else
{
//Query gelukt
$count_email = mysql_num_rows($result_select_email);
if($count_email > 0)
{
// Not available
echo 0;
}
else
{
// Available
echo 1;
}
}
?>
линии возврата возвращаются только после анонимной функции после того, как $ .post получает ответ. ваша функция check_availability, похоже, ничего не возвращает, но тогда я не могу сказать, где ее должно было закончиться, потому что у вас нет окончательного результата. – Octopus