2009-03-11 18 views
8

मेरे सबमिट बटन पर, मैं क्या करना चाहता हूं ऑनक्लिक एक "कृपया प्रतीक्षा करें" पैनल दिखाएं और बटन को छुपाएं, वैधकर्ताओं का कहना है कि कुछ अमान्य है - तो मुझे अभी भी स्पष्ट रूप से दिखने वाले बटनों की आवश्यकता है । अन्यथा मेरे पास एक सत्यापन सारांश है जो त्रुटि दिखा रहा है और फिर सबमिट करने का कोई तरीका नहीं है।जावास्क्रिप्ट जांच कर रहा है कि पृष्ठ वैध है

अधिकांश लेख जो मुझे यह करने के बारे में मिलते हैं, पृष्ठ को अपने आप को सत्यापित करने के लिए पृष्ठ को देखने के लिए पृष्ठ_ClientValidate() फ़ंक्शन का उपयोग करना चाहते हैं, लेकिन यह मेरे लिए अपरिभाषित है, जैसा पेज_आईस्वाइड वेरिएबल करता है। क्या मुझे याद आ रही ?:

function PleaseWaitShow() { 
    try { 
     alert("PleaseWaitShow()"); 

     var isPageValid = true; 

     // Do nothing if client validation is not active 
     if (typeof(Page_Validators) == "undefined") { 
      if (typeof(Page_ClientValidate) == 'function') { 
       isPageValid = Page_ClientValidate(); 
       alert("Page_ClientValidate returned: " + isPageValid); 
       alert("Page_IsValid=" + Page_IsValid); 
      } else { 
       alert("Page_ClientValidate function undefined"); 
      } 
     } else { 
      alert("Page_Validators undefined"); 
     } 

     if(isPageValid) { 
      // Hide submit buttons 
      document.getElementById('pnlSubmitButton').style.visibility = 'hidden'; 
      document.getElementById('pnlSubmitButton').style.display = 'none'; 

      // Show please wait panel 
      document.getElementById('pnlPleaseWait').style.visibility = 'visible'; 
      document.getElementById('pnlPleaseWait').style.display = 'block'; 
     } else { 
      alert("page not valid - don't show please wait"); 
     } 
    } catch(er) { 
     alert("ERROR in PleaseWaitShow(): " + er); 
    } 
} 
+0

क्या इसका उपयोग ASP.NET Validators के साथ किया जा रहा है? –

+0

मैं कुछ पीटरब्लम वैधकर्ताओं के साथ एएसपी.NET वैधकर्ताओं का उपयोग कर रहा हूं। एक साइड नोट के रूप में, यहां मैंने जहां फ़ंक्शन पोस्ट किया है, वहां पोस्ट किया गया है: http://www.experts-exchange.com/Programming/Languages/.NET/ASP.NET/Q_22426849.html – Chad

उत्तर

0

मुझे विश्वास है कि मुझे एक "तरह का" जवाब मिला है।

मैं अभी भी यह पहचान नहीं सकता कि मेरा पृष्ठ "पृष्ठ_ClientValidate()" या "पृष्ठ_आईस्वालिद" की पहचान क्यों नहीं करेगा - यह हिस्सा अभी भी अनुत्तरित नहीं है।

हालांकि, मैं पृष्ठ पर कई पीटरब्लम वैधकर्ताओं का उपयोग कर रहा हूं, और वे "VAM_ValOnSubmit()" प्रदान करते हैं जो सत्य/गलत लौटाता है। तो यह समाधान हो सकता है। मुझे बस यह सुनिश्चित करना होगा कि सभी वैधकर्ता पीटरब्लम उन सभी को पकड़ने के लिए हैं।

सबसे बड़ा समाधान नहीं है, लेकिन अब तक जितना बेहतर हो गया है उससे बेहतर है। मैं अभी भी "पेज_आईस्वालिड" भाग पर उत्तर देने के लिए खुला हूं।

0

Page_ClientValidate() है किसी भी मानक जावास्क्रिप्ट समारोह मैं अनुभाग "क्लाइंट-साइड एपीआई के अनुसार

+0

यह एक विधि है एएसपी।नेट वैलिडेटर्स, यह निर्दिष्ट नहीं किया गया था, लेकिन मेरा मानना ​​है कि ओपी इसका जिक्र कर रहा है। –

+0

यह सही है - यहां मुझे विचार मिल गया है (बहुत नीचे देखें): http://www.experts-exchange.com/Programming/Languages/.NET/ASP.NET/Q_22426849.html – Chad

5

का पता नहीं - यहाँ समारोह मैं उपयोग करने के लिए कोशिश कर रहा हूँ है ASP.NET Validation in depth "" पृष्ठ पर ":

Page_IsValid | बूलियन वैरिएबल | इंगित करता है कि पृष्ठ वर्तमान में मान्य है या नहीं। सत्यापन स्क्रिप्ट इसे हर समय अद्यतित रखती है।

दरअसल, साथ ASP.NET ग्राहक साइड सत्यापन सक्षम एक फार्म पर FireBug में इस चर देख, यह अद्यतन हो जाता है के रूप में मैं फार्म (गलत तरीके से, या सही ढंग से) का विवरण भरें।

जाहिर है, अगर आपने अपने वैधकर्ताओं या सत्यापन सारांश पर क्लाइंट स्क्रिप्ट अक्षम कर दी है, तो यह चर आपके लिए उपलब्ध नहीं होगा।

+0

मेरे बटन पर क्लिक करें I : अलर्ट (टाइपोफ (पेज_आईस्वालिद)); जो वापस आता है "अपरिभाषित" – Chad

8

परिवर्तन इस लाइन "अगर (typeof (Page_Validators) ==" अनिर्धारित ")" के लिए अगर (typeof (Page_Validators) = "अनिर्धारित"!)

+2

ग्रेट कैच। :) –

0

वहाँ इस विषय पर एक ASP.Net मंच धागा है: Button that prevents multiple clicks

यहाँ (पीछे कोड में) समाधान है:

private void BuildClickOnceButton(WebControl ctl) 
{ 
    System.Text.StringBuilder sbValid = new System.Text.StringBuilder(); 
    sbValid.Append("if (typeof(Page_ClientValidate) == 'function') { "); 
    sbValid.Append("if (Page_ClientValidate() == false) { return false; }} "); 
    sbValid.Append(ctl.ClientID + ".value = 'Please wait...';"); 
    sbValid.Append(ctl.ClientID + ".disabled = true;"); 
    //GetPostBackEventReference obtains a reference to a client-side script function that causes the server to post back to the page. 
    sbValid.Append(ClientScript.GetPostBackEventReference(ctl, "")); 
    sbValid.Append(";"); 
    ctl.Attributes.Add("onclick", sbValid.ToString()); 
} 
4

बस जाँच

if(Page_IsValid) 
{ 
    //Yourcode 
} 

यह काम करता है यदि आपके पास पृष्ठ में वैधता है, जिसमें सत्यापन सारांश शामिल नहीं है।

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