2009-06-03 9 views
5

मेरे पास एएसपीनेट वेबपृष्ठ पर दो टेक्स्टबॉक्स हैं, या तो एक या दोनों को भरना आवश्यक है। दोनों को खाली नहीं छोड़ा जा सकता है। मैं एएसपीनेट में ऐसा करने के लिए एक वैधकर्ता कैसे बना सकता हूं?दो टेक्स्ट बॉक्स, या तो एक या दोनों की आवश्यकता है

उत्तर

7

आपको इसे पूरा करने के लिए कस्टम वैलिडेटर की आवश्यकता होगी।

यहां कुछ कोड मूल उपयोग का प्रदर्शन कर रहा है। सबमिट वैधता में IsValid को कॉल करने के बाद कस्टम सत्यापनकर्ता टेक्स्ट दिखाया जाएगा और कुछ टेक्स्ट Response.Write कॉल से प्रदर्शित किए जाएंगे।

ASPX

<asp:TextBox runat="server" ID="tb1" /> 
    <asp:TextBox runat="server" ID="tb2" /> 

    <asp:CustomValidator id="CustomValidator1" runat="server" 
     OnServerValidate="TextValidate" 
     Display="Dynamic" 
     ErrorMessage="One of the text boxes must have valid input."> 
    </asp:CustomValidator> 

    <asp:Button runat="server" ID="uxSubmit" Text="Submit" /> 

कोड के पीछे

protected void Page_Load(object sender, EventArgs e) 
    { 
     uxSubmit.Click += new EventHandler(uxSubmit_Click); 
    } 

    void uxSubmit_Click(object sender, EventArgs e) 
    { 
     Response.Write("Page is " + (Page.IsValid ? "" : "NOT ") + "Valid"); 
    } 

    protected void TextValidate(object source, ServerValidateEventArgs args) 
    { 
     args.IsValid = (tb1.Text.Length > 0 || tb2.Text.Length > 0); 
    } 
7

एक CustomValidator की कोशिश करो।

आप एक विधि है कि ServerValidate घटना को संभालने के लिए निम्नलिखित करता है बनाने की आवश्यकता होगी:

void ServerValidation (object source, ServerValidateEventArgs args) 
{ 
    args.IsValid = TextBox1.Text.Length > 0 || TextBox2.Text.Length > 0; 
} 
+0

की तरह एक जावास्क्रिप्ट समारोह आप शायद कि args.IsValid = (TextBox1.Text को आसान बनाने में कर सकता है प्रस्तुत अपने पृष्ठ कॉल + TextBox2.Text)। लम्बाई> 0 या ऐसा कुछ। –

+0

@ फ़्रेड्रिक: उसे लंबाई को जोड़ना चाहिए, पाठ स्वयं ही नहीं। यह स्पष्ट बनाता है। हालांकि मुझे लगता है कि लांस का रास्ता अभी भी स्पष्ट है। – Brian

+0

हां, साफ-सफाई के लिए धन्यवाद! –

3

सर्वर साइड सत्यापन पैदा करने के अलावा, आप ClientValidationFunction संपत्ति CustomValidator पर उपयोग कर सकते हैं ग्राहक प्रदान करने के लिए साथ-साथ सत्यापन भी। यही कारण है कि कुछ इस तरह दिख सकता है:

function(sender, args) { 
    args.IsValid = document.getElementById('<%=TextBox1.ClientID%>').value != '' 
        || document.getElementById('<%=TextBox2.ClientID%>').value != ''; 
} 
-1

अपने बटन या जो कुछ भी की Onclientclick इस

function valtxtbox(){ 


if (document.getElementById('<%=TextBox1.ClientID%>').value== '' && document.getElementById('<%=TextBox2.ClientID%>').value== '') 
{ 

alert('You must enter in data!'); 
return false; 
} 
+0

यहां आपको OR के बजाय और स्थिति रखना होगा –

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