2010-10-08 2 views
14

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

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

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

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

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

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

ответ

11

Попробуйте это:

$("#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); 
    } 
}); 

Надеется, что это помогает!

+0

Нет, это не работает. он отображает сообщение только по электронной почте: «введите адрес электронной почты». Как я уже заметил. Я хочу отображать msg в контейнере div? – Developer

+0

Синтаксис верен, и так оно и должно быть сделано, поэтому проблема должна быть где-то в другом месте. 'validationRule' выглядит как пользовательский метод проверки. Что именно он должен делать? Не могли бы вы изменить свой вопрос и добавить код для этого метода? –

+0

validationRule метод ничего не делает. это просто возврат истины. ну, если я удалю эту строку. даже если он не работает с двумя правилами. и как я могу отобразить его в Divcontainer id #response. Я хочу отобразить сообщение в контейнере div – Developer

1

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

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

// 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 
     } 
    } 
});