2013-03-14 25 views
6

Özel bir işlevle jQuery Validate Engine ile bir alt etki alanının kullanılabilirliğini doğrulamaya çalışıyorum. Doğrulama doğru gibi görünüyor ancak .ajax isteği 200 değerini döndürürse alertText görüntülenmiyor. Access-Control-Allow-Origin başlıklarını ekledim ve günlüklerimde isteği başarıyla tamamlandığını görebiliyorum.jQuery doğrulama motoru özel javascript doğrulama

Neyi yanlış yapıyorum?

JavaScript Fonksiyonu:

function validateDomain(field, rules, i, options) { 
    var url = "https://" + field.val() + ".example.com/"; 
    $.ajax(url, 
     { 
      statusCode: { 
       200: function() { 
        //alert('name exists already'); 
        return options.allrules.validate2fields.alertText; 
       } 
      } 
     }); 
} 

Form Alanı:

<label class="required" for="signup[subdomain]">Subdomain<span>*</span></label> 
    <span>https://</span> 
    <input id="signup[subdomain]" name="signup[subdomain]" class="field field validate[required,funcCall[validateDomain]]" type="text"> 
    <span>.example.com</span> 
+0

Bir hata işleyici ekleyebilir ve gerçekleştirilip gerçekleştirilmediğine bakın, şüphem yok ayrıştırma hatası oluştu –

+2

bir kopyası gibi görünüyor [Bir işlevden bir AJAX çağrısından yanıt nasıl geri dönülür?] (Http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax-call-from-a-function) – Bergi

+1

Bunu, hem [tag: jquery-validate] hem de [tag] olarak etiketlediniz : jquery-validation-engine] ve bunlar iki tamamen farklı eklentiler. Hangisini kullanıyorsun? – Sparky

cevap

0

sorun $.ajax bir asenkron fonksiyonudur ve bu şekilde çalışan kalmamasıdır.

function validateDomain(field, rules, i, options) { 
    var url = "https://" + field.val() + ".example.com/"; 
    $.ajax(url, 
     { 
      statusCode: { 
       200: function() { // [ second function ] 
        return options.allrules.validate2fields.alertText; 
       } 
      } 
     }); 
} 

sorundur: dönüş yalnızca validateDomain için [second function] değil içindir.

jquery-validation-engine belgelerine bakmak İstediğiniz şeyi yapmanın bir yolunu göremiyorum.