2013-03-14 6 views
6

मैं एक कस्टम फ़ंक्शन के माध्यम से jQuery सत्यापन इंजन के साथ एक सबडोमेन की उपलब्धता को सत्यापित करने का प्रयास कर रहा हूं। प्रमाणीकरण सही ढंग से प्रतीत होता है लेकिन अगर अजाक्स अनुरोध 200 लौटाता है तो चेतावनी टेक्स्ट प्रदर्शित नहीं होता है। मैंने Access-Control-Allow-Origin हेडर जोड़े हैं और मेरे लॉग में सफलतापूर्वक पूरा करने का अनुरोध देख सकते हैं।jQuery सत्यापन इंजन कस्टम जावास्क्रिप्ट सत्यापन

मैं क्या गलत कर रहा हूं?

जावास्क्रिप्ट फंक्शन:

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

फार्म फील्ड:

<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

क्या आप एक त्रुटि हैंडलर जोड़ सकते हैं और देख सकते हैं कि इसे निष्पादित किया जा रहा है या नहीं, मेरा संदेह है कि –

+2

एक पार्स त्रुटि हो रही है [एक फ़ंक्शन से AJAX कॉल से प्रतिक्रिया कैसे वापस करें?] (Http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax-call-from-a- कार्यक्षमता) – Bergi

+1

आपने इसे दोनों [टैग: jquery-validate] और [टैग टैग किया है : jquery-validation-engine] और फिर भी ये दो पूरी तरह से अलग प्लगइन हैं। आप वास्तव में किसका उपयोग कर रहे हैं? – Sparky

उत्तर

0

समस्या यह है कि $.ajax एक अतुल्यकालिक समारोह है और इस तरह से काम नहीं करते है।

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

समस्या है: अपनी वापसी केवल नहीं [second function]validateDomain के लिए के लिए है।

jquery-validation-engine के दस्तावेज़ों को देखते हुए मैं जो भी चाहता हूं उसे करने का कोई तरीका नहीं देख सकता।

संबंधित मुद्दे