2011-06-12 10 views
8

मेरे पास एकाधिक टैब के साथ टैबस्ट्रिप है। प्रत्येक टैब में उपयोगकर्ता के इनपुट के लिए मेरे पास कई टेक्स्ट फ़ील्ड हैं। टैबस्ट्रिप एक फॉर्म से घिरा हुआ है और बस सबमिट बटन के नीचे है।एकाधिक टैब में एमवीसी फॉर्म सत्यापन - प्रमाणीकरण त्रुटियों के साथ टैब पर ऑटो कूद?

मैंने मॉडल विशेषताओं पर सत्यापन को एनोटेट किया है। सत्यापन Jquery सत्यापन का उपयोग कर ठीक काम करता है। हालांकि, यदि उपयोगकर्ता किसी फ़ील्ड में इनपुट त्रुटि करता है, तो एक अलग टैब पर जाता है और सबमिट करें दबाएं त्रुटि निष्क्रिय टैब में दिखाई देगी और इस प्रकार उपयोगकर्ता द्वारा नहीं देखा जाएगा। मैं सत्यापन त्रुटि के साथ टैब पर स्वचालित रूप से Jquery सत्यापन करना चाहता हूं, इसलिए उपयोगकर्ता इसे देख सकता है। क्या यह संभव है?

उत्तर

6

मुझे नहीं लगता कि इसके लिए बॉक्स समाधान से बाहर है। लेकिन आप इसे जावास्क्रिप्ट में बहुत आसान कर सकते हैं। आप जो करते हैं वह फॉर्म पर है, आप प्रत्येक टैब की सामग्री देखते हैं, और यदि आपको सत्यापन त्रुटि मिलती है तो आप उस टैब पर स्विच करते हैं।

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#myForm").submit(function() { 
      $("#tabs").tabs("select", $("#myForm .input-validation-error").closest(".ui-tabs-panel").get(0).id); 
     }); 
    }); 
</script> 

यह नमूना मानता है कि आपके प्रपत्र के आईडी MyForm है, जो आपके टैब आईडी टैब है:

यहाँ

नमूना है। यह भी मानता है कि आपके पास ClientValidationEnabled = true और UnobtrusiveJavaScriptEnabled = web.config में सत्य है। यह कोड स्निपेट त्रुटि के साथ पहले टैब पर स्विच करेगा।

यह कोड सिर्फ नमूना है और इसे फिर से सक्रिय किया जा सकता है, लेकिन यह विचार दिखाता है।

+2

आप छोटी उपयोगिता सुविधा '$ (" # myForm.input-validation-error ") भी जोड़ सकते हैं। फोकस(); 'सबमिट हैंडलर में। यह अवांछित इनपुट पर ध्यान केंद्रित करेगा। उपयोगकर्ता इसके लिए आपको धन्यवाद देंगे :) –

+0

इस चीज़ ने महान चीनी काम किया। इसे पोस्ट करने के लिए धन्यवाद! –

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