2011-08-10 13 views
8

मैं qtip jQuery प्लगइन का उपयोग कर टूलटिप में क्लाइंट साइड सत्यापन त्रुटियों को दिखाने के लिए here समाधान का उपयोग कर रहा हूं। यह समाधान क्लाइंट साइड सत्यापन के लिए बहुत अच्छा काम करता है लेकिन मैं उसी तरह सर्वर साइड सत्यापन त्रुटियों को प्रदर्शित करने में सक्षम होना पसंद करूंगा। क्या कोई जानता है कि qTip का उपयोग करने वाले टूलटिप्स में सर्वर साइड सत्यापन त्रुटियों को कैसे दिखाया जाए?क्यूटीआईपी jQuery प्लगइन का उपयोग कर एएसपी.नेट एमवीसी प्रमाणीकरण

धन्यवाद

उत्तर

12

अगर वहाँ एक सर्वर साइड सत्यापन त्रुटि है पृष्ठ के लोड होने वहाँ वर्ग 'फ़ील्ड-मान्यता-त्रुटि' के साथ किसी स्पान तत्व हो जाएगा तो हम कर सकते बस उस वर्ग के साथ सभी तत्वों से अधिक पाश , सामग्री या त्रुटि संदेश निकालें, और इसे टूलटिप में प्रदर्शित करें।

$(document).ready(function() { 
    // Run this function for all validation error messages 
    $('.field-validation-error').each(function() { 

     // Get the name of the element the error message is intended for 
     // Note: ASP.NET MVC replaces the '[', ']', and '.' characters with an 
     // underscore but the data-valmsg-for value will have the original characters 
     var inputElem = '#' + $(this).attr('data-valmsg-for').replace('.', '_').replace('[', '_').replace(']', '_'); 

     var corners = ['left center', 'right center']; 
     var flipIt = $(inputElem).parents('span.right').length > 0; 

     // Hide the default validation error 
     $(this).addClass('Hidden'); 

     // Show the validation error using qTip 
     $(inputElem).filter(':not(.valid)').qtip({     
      content: { text: $(this).text() } , // Set the content to be the error message 
      position: { 
       my: corners[flipIt ? 0 : 1], 
       at: corners[flipIt ? 1 : 0], 
       viewport: $(window) 
      }, 
      show: { ready: true }, 
      hide: false,     
      style: { classes: 'ui-tooltip-red' } 
     });    
    }); 
}); 

यहां एक blog post है जो बताता है कि इसे विस्तार से कैसे किया जाए।

0

निक ओल्सन द्वारा पोस्ट किया गया समाधान बहुत अच्छा काम करता है! एक अवलोकन:

.replace() इस बयान में इस्तेमाल केवल ‘.’‘[' और ']‘

var inputElem = ‘#’ + $(this).attr(‘data-valmsg-for’).replace(‘.’, ‘_’).replace(‘[', '_').replace(']‘, ‘_’); 

की पहली घटनाओं की जगह सभी घटनाओं की लाइन होना चाहिए बदलने के लिए कुछ की तरह:

var inputElem = "#" + $(this).attr("data-valmsg-for").replace(/\./g,"_").replace(/[\[\]]/g, "_"); 
संबंधित मुद्दे