JQuery проверить с несколькими правилами - PullRequest
14 голосов
/ 08 октября 2010

Как проверить поле адреса электронной почты с тремя правилами с тремя настроенными сообщениями в контейнере div.то есть.

rules: {
    email: {
        validationRule: true,
        email: true,
        remote: '/ajax/emailDuplicationCheck.php'
       }
     }

если первое одно ложное сообщение должно быть «сбой правила проверки»

если второе ложное (сбой) «ввести адрес электронной почты»

если третье (удаленное)не удалось.сообщение должно быть «Учетная запись уже существует в базе данных».

Я могу добавить одно сообщение для всех правил, но я хочу настроить сообщение в соответствии с правилами.

Ответы [ 2 ]

12 голосов
/ 08 октября 2010

Попробуйте:

$("#myForm").validate({ // Replace #myForm with the ID of your form
    rules: {
        email: {
            required: true,
            email: true,
            remote: {
                url: "/ajax/emailDuplicationCheck.php",
                type: "post",
                data: { email: function() {
                    return $("#email").val(); // Add #email ID to your email field
                }
            }
        }
    },
    messages: {
        email: {
            required: 'Email address is required',
            email: 'Please enter a valid email address',
            remote: 'This email address has already been used'
        }
    },
    errorPlacement: function(error) {
        $("#response").html(error);
    }
});

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

3 голосов
/ 18 мая 2015

Вы можете использовать собственные правила проверки вместе со своими собственными сообщениями для каждого правила.

Для простоты, вот пример того, как проверить ввод 'username' с помощью трех пользовательских методов проверки (каждый со своим 'собственным сообщением об ошибке):

// Add three custom methods first:

$.validator.addMethod("nameCustom", function(value, element) {
    return this.optional(element) || /^[a-zA-Z ]+/.test(value);
}, 'Please use english letters only.');

$.validator.addMethod("noSpaceStart", function(value, element) { 
    return value.indexOf(" ") != 0; 
}, "Name cannot start with a space");

$.validator.addMethod("noSpaceEnd", function(value, element) { 
    return value.lastIndexOf(" ") != value.length - 1; 
}, "Name cannot end with a space");

$('#form_to_validate').validate({
    rules: {
        username: {
            // Add the custom validation methods to the username input
            noSpaceStart: true,
            noSpaceEnd: true,
            nameCustom: true,
            // required and maxlength are built-in methods in the plugin and are ready to be used
            required: true,
            maxlength: 50
        }
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...