2010-10-08 25 views
14

Bir e-posta adresi alanını, üç farklı iletiyle div kutusundaki üç özelleştirilmiş iletiyle doğrulayın. ie. İkinci bir yanlış (başarısız) "e-posta adresini girin"Birden çok kurallı jquery doğrulaması

eğer

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

birincisi yanlış mesaj gerekiyorsa "geçerlilik kuralı başarısız oldu"

üçüncü (uzaktan) eğer başarısız oldu. ileti "Hesap veritabanında zaten var" olmalıdır.

Tüm kurallar için bir mesaj ekleyebilirim ancak mesajı kurallara göre özelleştirmek istiyorum.

cevap

11

bu deneyin:

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

Umut bu yardımcı olur!

+0

No.:

Kolaylık olması açısından, burada doğrulama için üç özel yöntemler (kendi hata iletisi ile her biri) ile birlikte bir 'kullanıcı adı' giriş doğrulamak için nasıl bir örnek verilmiştir. mesajı sadece e-postada gösterir: 'e-posta adresini girin'. Bahsettiğim gibi. Msg'yi div kapsayıcısında görüntülemek istiyorum? – Developer

+0

Sözdizimi doğru ve bu şekilde yapılması gerekiyordu, bu yüzden sorun başka bir yerde olmalı. validationRule, özel bir doğrulama yöntemine benziyor. Tam olarak ne yapması gerekiyor? Sorunuzu düzenleyebilir ve bu yöntemin kodunu da ekleyebilir misiniz? –

+0

validationRule yöntemi hiçbir şey yapmadan. sadece doğrudur. Bu çizgiyi kaldırırsam iyi olur. Hatta iki kural ile çalışmıyor. ve nasıl # responsese'nin Divcontainer'ında görüntüleyebilirim. İletiyi div kapsayıcısında görüntülemek istiyorum – Developer

1

Her bir kural için kendi özel iletilerinizle birlikte özel doğrulama kurallarını kullanabilirsiniz. Bu çalışmıyorsa

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