Я пытаюсь проверить, что имя пользователя уже существует или нет, используя следующий скрипт
$('#editAccount').validate({
rules: {
firstname: {
required: true
},
lastname: {
required: true
},
username: {
required: true,
remote: {
url: 'index.php?route=account/edit/validate_username',
type: 'post',
data: {
username: function() {
return $('#username').val();
}
},
success: function(data) {
console.log(data);
},
error: function() {
console.log('test');
}
}
}
},
messages: {
firstname: {
required: 'You can\'t leave this empty.'
},
lastname: {
required: 'You can\'t leave this empty.'
},
username: {
required: 'You can\'t leave this empty.'
}
}
});
В приведенном выше сценарии он не стреляет ни успехом, ни ошибкой. remote
url возвращает {"status":1} json
. Что не так с этим сценарием?
Обновление - 1
Рассмотрите это как мой php файл
$status = check_for_availability($username);
if($status) {
echo "true";
//echo json_encode(array('status' => 1, 'message' => 'Username '.$username.' is still available'));
} else {
echo "false";
//echo json_encode(array('status' => 0, 'message' => 'Username '.$username.' is not available. Try with another one.'));
}
Попробуйте вернуть значение true или false в строковом формате. Он должен вернуть {"status": "true"} и yes @Amit Agrawal правильно, вы должны использовать data.Status
Обратитесь к этой теме. jQuery validation addmethod всегда возвращает false
data.Status
для определения значения