У меня есть то, что раньше было проверкой рабочей формы, включая удаленную проверку имени пользователя, как доступно.мы добавили много другого javascript в файл script.js, и в какой-то момент недавно его удаленная часть сломалась.При проверке проверяется только одно поле формы, поле new_name.Это требуется (работает) и должно быть доступно (не работает).
Вот jQuery:
$('#nickname_form').validate({
rules: {
new_name: {
required: true,
remote: {
url: '/api/screenname_unique/',
type: 'post'
}
}
},
messages: {
new_name: {
required: 'Please choose a Forum Username.',
remote: 'That Username is already taken or contains invalid characters.'
}
}
});
Как я уже говорил выше, работало без изменений.Я проверил остальную часть файла script.js, и никаких ошибок не появляется.Также на сайте мы нигде не видим ошибок JS.Если я удалю удаленную часть кода выше, необходимая проверка сработает, и форма будет отправлена, когда в поле появится значение.
При наличии удаленной формы форма не будет отправлена, и независимо от того, является ли ответ ajax от удаленного вызова истинным или ложным, не отображается сообщение об ошибке проверки jQuery.Вот страница, вызываемая удаленно.Он отлично работает, если дать ответ на данное значение:
<?php
header('Content-type: application/json');
//get the post value
$screen_name = $_POST['new_name'];
//get their member_id
$member_id = $this->EE->session->userdata['member_id'];
//return false if no screen_name provided
if((!$screen_name) || (!$member_id)) {
echo json_encode(false);
exit;
} else { //there is a screen_name
//Regex Check for valid chars
$valid = !preg_match('/[^a-z0-9_ -]/i',trim($screen_name));
if (!$valid) {
echo json_encode(false);
exit;
}
//SQL
$results = $this->EE->db->query("SELECT member_id FROM exp_members WHERE screen_name = '$screen_name' and member_id <> '$member_id' limit 1");
if ($results->num_rows() > 0) {
echo json_encode(false);
} else {
echo json_encode(true);
}
}
?>
Я не совсем уверен, куда идти дальше.Идеи?