2012-10-24 26 views
5

मैं यह div दिखाना चाहता हूं कि फ़ॉर्म सत्यापन असफल है या नहीं।सत्यापन दिखाएं यदि सत्यापन विफल रहता है

<div class="alert"> 
    <strong>Warning!</strong> @Html.ValidationSummary(false, "Fix these errors:") 
</div> 

मैंने कोशिश की अंदर

if(! ViewData.ModelState.IsValid) 

लपेटा लेकिन जब पर्चे को जमा करने div प्रदर्शित नहीं है। शायद क्योंकि पोस्ट जेडरी सत्यापन के बाद पोस्ट नहीं है। प्रमाणीकरण तर्क ठीक लगता है, अगर मैं सभी गलत इनपुट फ़ील्ड को if-statement सत्यापन सारांश सूची हटा देता हूं।

मैं सत्यापन के आधार पर div की दृश्यता को कैसे टॉगल कर सकता हूं?

उत्तर

2

आप इस साधारण स्क्रिप्ट को लागू कर सकते हैं। यह बहुत परिष्कृत नहीं है, लेकिन यह चाल

$(document).ready(function() { 
    $('.alert').hide(); //hides the div on page load 
    $('#submit').click(function() { //assumes your submit button has id="submit" 
     $('.alert').show(); //shows the div when submit is clicked 
    }); 
}); 

आप देख सकते हैं, यह वास्तव में सत्यापन के बारे में परवाह नहीं है क्या करना चाहिए। जब सबमिट बटन क्लिक किया जाता है तो यह बस 'अलर्ट' div दिखाई देता है। अगर सत्यापन त्रुटियां हैं, तो div आपकी चेतावनियों के साथ दिखाएगा। यदि फॉर्म मान्य है, तो मैं ताज़ा कर रहा हूं, या रीडायरेक्ट कर रहा हूं, इसलिए div को वास्तव में दिखाने का मौका नहीं मिलेगा।

+0

आपके कामकाज में सही उपयोगकर्ता अनुभव है क्योंकि मैंने इसे ऊपर उठाया है। हालांकि, ऐसा लगता है जैसे मुझे कुछ याद आ रहा है। फॉर्म पूरा होने से पहले त्रुटि संदेश '(इन त्रुटियों को ठीक करें) को आउटपुट करना चाहता है। ऐसा लगता है कि '@ एचटीएमएल। वैलिडेशनसमरी' में कुछ टॉगल दृश्यता तंत्र होना चाहिए ... – dbd

+0

सच। हालांकि, अगर आप बस एक div में @ Html.ValidationSummary लपेट नहीं करते हैं तो यह आवश्यक होने तक खुद को छुपाएगा ... –

+0

क्या आप निश्चित हैं? जब मैंने सत्यापन शुरू किया, तो मैंने इसे '@ एचटीएमएल। वैलिडेशनसमरी' छोड़ दिया, बिना किसी div के पाठ और पाठ 'इन त्रुटियों को ठीक करें' शुरुआत से ही है। – dbd

2

अद्यतन

मैं स्वीकार किए जाते हैं जवाब दुबारा लिखा। यदि सर्वर कनेक्शन धीमा है तो त्रुटि अनुरोध सर्वर अनुरोध के दौरान दिखाई देगा। यहां तक ​​कि अगर कोई त्रुटि नहीं है। मैंने इसे सबमिट करने के लिए यह बदल दिया कि फ़ॉर्म सबमिट करते समय फॉर्म वैध है या नहीं। यह कोड स्निपेट मानता है कि आपके पास एक फॉर्म है।

$(document).ready(function() { 
    $(".alert").hide(); //hides the div on page load 

    $("form").submit(function() { 
     if (!$(this).valid()) { 
      $('.alert').show(); 
     } 
    });   
}); 
संबंधित मुद्दे