Проверка формы jQuery не может продолжить проверку - PullRequest
0 голосов
/ 28 октября 2011

То, что я делаю, действительно просто.Мне просто нужна базовая форма, но если она становится действительной, даже если она висит там и действует так, как поле является действительным, даже если это не так.

Например, если я наберу abc@abc.com дляадрес электронной почты, и он проверяет, затем устанавливает его как действительный.Но если я вернусь и вставлю электронное письмо, которое существует и должно вернуть false (и делает), статус не изменится.Это также относится к методу equalTo.

Это действительно ужасно: /

Вот JS [сокращенные имена]:

$('#register').validate({
    rules: {
        scq: {
            required: true
        },
        email: {
            required: true,
            remote: {
                url: 'ajax.php',
                type: 'post',
                async: false,
                data: {
                    type: 'email',
                    email: function() {
                        return $('#email').val()
                    }
                }
            }
        },
        email2: {
            equalTo: '#email'
        },
        pass: {
            required: true
        },
        pass2: {
            equalTo: '#pass'
        }
    },
    success: function(label) {
        label.html(' ').addClass('success');
    }
});

PHP для ajax.php:

if($row['id']) $success = true;
else $success = false;

echo json_encode($success);

1 Ответ

1 голос
/ 28 октября 2011

... если я вернусь и вставлю электронное письмо, которое существует и должно вернуться false (и делает) статус не меняется.

Это потому, что вы вручную добавляете класс с именем .success в обработчик success:. Проблема заключается в том, что ничто не удаляет этот класс, если впоследствии или когда проверка завершается неудачей.

Вы можете просто позволить плагину автоматически применять / удалять соответствующий класс для успеха . (Он уже делает это для класса ошибок.) Добавьте обработчик validClass: ...

$('#register').validate({
    validClass: 'success',
    rules: { // etc. etc.

А затем удалите .addClass('success') из вашего обработчика success:.


Я не совсем уверен, куда входит ваша переменная $success или это часть проблемы.

Однако, , чтобы просто проверить, прошла проверка или не прошла , вы просто проверяете, является ли .valid() истинным или ложным ...

if ($('#register').valid() == true) { alert('passed validation'); };

if ($('#register').valid() == false) { alert('failed validation'); };

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...