2011-01-14 14 views
7

jquery doğrulama eklentisini kullanıyorum.Ajax Doğrulaması jquery'yi Kullanma?

Formumda, takma adın kullanımda olup olmadığını kontrol etmem gerekiyor.

Bunun için ajax çağrısı yapmak için remote anahtarını sağlıyorlar. Benim için ajax çağrısı doğru çalışıyor ve doğru veya yanlış döndürüyor. Ancak dönüş değeri yanlış olsa bile izin verilemeyen .

Benim doğrulama kodu benziyor,

$(function() { 
    $("#myform").validate({ 
     rules: { 
      fullName: { 
       required: true, 
       minlength: 5 
      }, 
      nickName: { 
       required: true, 
       minlength: 4, 
       alphaNumeric: true, 
       remote: { 
        url: "NickNameChecker", 
        type: "post", 
        data: { 
         nickName: function() { 
         return $("#nickName").val(); 
        }}, 
        success: function(data) { 
         return data; 
        } 
       } 
      } 
     }, 
     messages: { 
      fullName: { 
       required: "Please Enter Your Full Name.", 
       minlength: "Full Name should have minimum 5 letters." 
      }, 
      nickName: { 
       required: true, 
       minlength: "Nick Name should contain minimum 4 letters.", 
       remote: "This nickname is already in use." 
      } 
     } 
    }); 
}); 

herhangi bir öneriniz takdir olurdu !!!

Teşekkürler!

Çözüm:

çözüm sadece benim kodu gönderiyor.

Sadece başarı bölümünü kaldırdım ve denedim. Onun harika çalışıyor!

+1

Uzak sayfanın dönüş değeri nedir? – Chandu

+0

@Cybernate: Eğer nick kullanımda 'true' değilse 'false' –

+3

@TamilVendhan: 'Remote' seçeneğinde uzman değil, bulabildiğim örneklerin hiçbiri "başarı" seçeneğinin belirtildiğini göstermedi. –

cevap

1

(yukarıdaki yorumun Expanded açıklama):

success seçenek jQuery doğrulamak uzaktan doğrulama için geçerli değil. Sadece gerçek veya falsy değeri/hata mesajı döndürür doğrulama için erişmek için bir URL belirtmek gerekir:

serverside kaynak $ .ajax (XMLHttpRequest) üzerinden denilen ve bir anahtar/değer alır edilir

onaylanmış öğenin adına karşılık gelen ve bir GET parametresi olarak değerine karşılık gelir. Yanıt , JSON olarak değerlendirilir ve geçerli öğeler için doğru olmalı ve varsayılan iletiyi kullanarak, geçersiz öğeleri için false, undefined veya null olabilir; veya bir dize

seçeneğini kullanma konusunda daha fazla bilgi için documentation for remote bakınız. Kodunuz muhtemelen böyle bir şey görünecektir:

$(function() { 
    $("#myform").validate({ 
     rules: { 
      fullName: { 
       required: true, 
       minlength: 5 
      }, 
      nickName: { 
       required: true, 
       minlength: 4, 
       alphaNumeric: true, 
       remote: { 
        url: "NickNameChecker", 
        type: "post", 
        data: { 
         nickName: function() { 
         return $("#nickName").val(); 
        } 
       } 
      } 
     }, 
     messages: { 
      fullName: { 
       required: "Please Enter Your Full Name.", 
       minlength: "Full Name should have minimum 5 letters." 
      }, 
      nickName: { 
       required: true, 
       minlength: "Nick Name should contain minimum 4 letters.", 
       remote: "This nickname is already in use." 
      } 
     } 
    }); 
}); 
0

jQuery Doğrulama ekibi olmayan boole API'leri in this GitHub issue işlemek için başka bir yol tavsiye etti.

Önerilen yöntem, jQuery.ajax() 'un dataFilter özelliğinden yararlanır.

form.validate({ 
    rules: { 
     username: { 
      required: true, 
      remote: { 
       url: "users2.json.php", 
       dataFilter: function(data) { 
        var json = JSON.parse(data); 
        if(json.status === "success") { 
         return '"true"'; 
        } 
        return "\"" + json.error + "\""; 
       } 
      } 
     } 
    } 
});