2011-01-07 15 views
25

मैं एक वेबपृष्ठ पर काम कर रहा jQuery सत्यापन प्राप्त करने का प्रयास कर रहा हूं। मेरे पास लगभग 6 अलग-अलग फ़ील्ड हैं जिनमें पृष्ठ का विवरण शामिल है। मैं इसका उपयोग कर रहा हूं क्योंकि मैं छुपा रहा हूं और उन्हें एक बेहतर उपयोगकर्ता अनुभव दिखा रहा हूं।jQuery सत्यापन ऑनब्लूर

मेरे पास प्लगइन काम कर रहा है क्योंकि जब भी मैं पृष्ठ सबमिट करने का प्रयास करता हूं और जब भी मैं एक वर्ण जोड़ता हूं (जब टेक्स्टबॉक्स में 2 या अधिक वर्णों की आवश्यकता होती है) हालांकि मैं भी सत्यापन पर होना चाहता हूं। मैं अपने उपयोगकर्ताओं को तुरंत सूचित करना चाहता हूं कि अगर वे सत्यापन स्थिति को पूरा नहीं कर चुके हैं, तो वे इसे तुरंत ठीक कर सकते हैं और वापस आने की आवश्यकता नहीं है।

क्या कोई मुझे बता सकता है कि मुझे क्या करना है * मैं http://bassistance.de/jquery-plugins/jquery-plugin-validation/ प्लगइन का उपयोग कर रहा हूं।

यह है jQuery कोड मैं अब तक लिखा है:

 $("#aspnetForm").validate({ 
      rules: { 
      <%=txtFirstName.UniqueID %>: 
       { 
        required: true, 
        minlength: 2 
       } 
       , 
       <%=txtSurname.UniqueID %>: 
       { 
        required: true, 
        minlength: 2 
       } 
       , 
       <%=txtMobileNumber.UniqueID %>: 
       { 
        required: true, 
        minlength: 8 
       } 
       , 
       <%=Email.UniqueID %>: 
       { 
        required: true, 
        email: true 
       } 
       , 
        <%=ddDay.UniqueID %>: 
       { 
        required: true 

       } 
       , 
        <%=ddMonth.UniqueID %>: 
       { 
        required: true 

       } 
       , 
        <%=ddYear.UniqueID %>: 
       { 
        required: true 

       } 
       , 
       <%=txtHouseNumber.UniqueID %>: 
       { 
        required: true, 
        minlength:1 

       } 
       , 
       <%=txtAddress1.UniqueID %>: 
       { 
        required: true, 
        minlength:5 
       } 
       , 
       <%=txtCity.UniqueID %>: 
       { 
        required: true, 
        minlength:2 
       } 
       , 
       <%=txtSuburb.UniqueID %>: 
       { 
        required: true, 
        minlength:2 
       } 
       , 
       <%=txtPostCode.UniqueID %>: 
       { 
        required: true, 
        minlength:4, 
        maxlength:4 
       } 

       , 
       <%=UserName.UniqueID %>: 
       { 
        required: true, 
        minlength:4 

       } 
       , 
       <%=Password.UniqueID %>: 
       { 
        required: true, 
        minlength:4 

       } 
       , 
       <%=ConfirmPassword.UniqueID %>: 
       { 
        equalTo: "ctl00$ctl00$cpMain$cpLeft$Password" 

       } 
        , 
       <%=chkTerms.UniqueID %>: 
       { 
        required: true 


       } 

      }, 
      messages: { 
       <%=txtFirstName.UniqueID %>: 
      { 
       required: "Please enter your firstname", 
       minlength: "Minimum length is 2 characters" 
      }, 
       <%=txtSurname.UniqueID %>: 
      { 
       required: "Please enter your lastname", 
       minlength: "Minimum length is 2 characters" 
      }, 
      <%=txtMobileNumber.UniqueID %>: 
      { 
       required: "Please enter your mobile", 
       minlength: "Minimum length is 8 characters" 
      } 
      , 
      <%=ddDay.UniqueID %>: 
      { 
       required: "Please enter your date of birth" 

      } 
      , 
      <%=txtMobileNumber.UniqueID %>: 
      { 
        required: "Please enter your date of birth" 
      } 
      , 
      <%=txtMobileNumber.UniqueID %>: 
      { 
        required: "Please enter your date of birth" 
      } 
      , 
        <%=Email.UniqueID %>: 
        "Please enter a valid email" 
      , 
      <%=txtHouseNumber.UniqueID %>: 
      { 
        required: "Please enter your house number", 
        minlength:"Please add at least 1 character" 
      } 

      , 
      <%=txtAddress1.UniqueID %>: 
      { 
        required: "Please enter your address", 
        minlength:"Please add at least 5 characters" 
      } 
      , 
      <%=txtCity.UniqueID %>: 
      { 
        required: "Please enter your city", 
        minlength:"Please add at least 2 characters" 
      } 
      , 
      <%=txtSuburb.UniqueID %>: 
      { 
        required: "Please enter your city", 
        minlength:"Please add at least 2 characters" 
      } 
      , 
      <%=txtPostCode.UniqueID %>: 
      { 
        required: "Please enter your postcode", 
        minlength:"Please add the 4 required characters", 
        maxlength:"Only 4 characters are allowed" 
      } 
      , 
      <%=UserName.UniqueID %>: 
      { 
        required: "Please enter your username", 
        minlength: "Please add the 4 required characters" 

      } 
      , 
      <%=Password.UniqueID %>: 
      { 
        required: "Please enter your password", 
        minlength: "Please add the 4 required characters" 

      } 
      , 
      <%=ConfirmPassword.UniqueID %>: 
      { 
        equalTo: "Passwords must match" 
      } 
      , 
      <%=chkTerms.UniqueID %>: 
      { 
        required: "Please agree to the terms" 


      } 

      } 


     }); 


किसी भी सुझाव दिए गए?

उत्तर

11

मैं उन दस्तावेज़ों में कुछ भी नहीं देख सकता जो ऐसा कर सकते हैं। एकमात्र अन्य तरीका मैं इसे करने के बारे में सोच सकता हूं।

$('#field1, #field2, #field3').blur(function(){ 
    validator.validate() 
}); 
+0

हाय टिमोथी, तो कूल मैं पागल नहीं जा रहा हूँ। वैधता क्या है? क्या आपका मतलब $ ("# aspnetForm") है। मान्य(); validator.validate के बजाय() –

+0

हाँ वह एक। मेरी गलती आप एक वैधकर्ता वस्तु बना सकते हैं (हालांकि आप नहीं हैं, और आपको इसकी आवश्यकता नहीं है)। –

+13

यह किया जा सकता है ....... बस इस ऑनफोकसआउट को जोड़ने की आवश्यकता है: फ़ंक्शन (तत्व) {$ (तत्व)। Valid(); }, एक इलाज –

50

गोताखोर दान था सही

$('form').validate({ 
    onfocusout: function (element) { 
     $(element).valid(); 
    }, 
    rules: { 
     name: 'required', 
     from: 'required' 

    }, 
    messages: { 
     name: 'Please enter your firstname', 
     from: 'Please enter where are you from' 
    } 
}); 
+6

वांछित व्यवहार –

+1

वास्तव में, प्लगइन के भीतर उपयोग की जाने वाली एक ही विधि का उपयोग करना बेहतर होगा, मुझे "ऑनकीअप: झूठा" जोड़ना था। तो ... 'this.element (तत्व)' '$ (तत्व) के बजाय' valid() '। देखें: http://stackoverflow.com/a/16205614/594235 – Sparky

+0

यह Uncaught TypeError देता है: validator.settings [eventType] .call एक फ़ंक्शन नहीं है –

7

तुम भी सत्यापनकर्ता के तत्व कॉल उपयोग कर सकते हैं।

$('form').validate({ 
     onfocusout: function(element) { 
      this.element(element); 
     }, 
     rules: { 
      name: 'required', 
      from: 'required' 

     }, 
     messages: { 
      name: 'Please enter your firstname', 
      from: 'Please enter where are you from' 
     } 
    }); 
2

बस onkeyup पर सेट = false

$('form').validate({ 
    rules: { 
     name: 'required', 
     from: 'required' 

    }, 
     onkeyup: false 
     , 
    messages: { 
     name: 'Please enter your firstname', 
     from: 'Please enter where are you from' 
    } 
}); 
+2

** यह वास्तव में सही उत्तर है! ** मेरी समस्या को हल किया गया मान्यता। धन्यवाद –

0

Thia code will not fire validation onkeyup, but on blur "lost focus" the validation will be fire, as will once the user starts to edit the field, validation message will disappear. find more interesting other customization on this ref: https://jqueryvalidation.org/category/plugin/

$('#frm').validate({ 
      onkeyup: false, 
      focusCleanup: true 
     }); 
संबंधित मुद्दे