2010-08-19 7 views
5

मेरे पास टेक्स्ट बॉक्स का एक समूह है जिसके लिए फ़ील्ड सत्यापन आवश्यक है। जाहिर है वे सभी एक ही सत्यापन समूह नाम साझा करते हैं। मेरे पास सेवा की शर्तों के लिए एक चेक बॉक्स है जिसे सबमिट बटन पर क्लिक करने से पहले चेक किया जाना चाहिए वास्तव में कुछ भी करता है।किसी शर्त को पूरा नहीं होने पर एक सत्यापन समूह को विफल करने के लिए मजबूर करें

क्या कुछ सी # कोड है जो कहेंगे कि यह बॉक्स चेक नहीं किया गया है, तो सत्यापन समूह विफल हो गया है?

या क्या कोई बेहतर तरीका है?

संपादित करें: मैंने एक कस्टम सत्यापनकर्ता जोड़ा और इसे मेरे कोड में पीछे इस्तेमाल किया। काम नहीं करता।

protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args) 
{ 
    args.IsValid = false; 
    if (cbxTerms.Checked) 
     args.IsValid = true; 
} 
+5

चेकबॉक्स को कस्टम वैलिडेटर क्यों न दें और इसे उसी सत्यापन समूह में जोड़ें? – SteveCav

+0

क्या आपने कस्टम सत्यापनकर्ता का उपयोग करने का प्रयास किया है? – Raymund

+0

कृपया ऊपर मेरा संपादन देखें, मैंने आपको ट्यूब पर यह समाधान देखा लेकिन यह मेरे लिए काम नहीं करता है। मैं समझ नहीं सकता क्यों। –

उत्तर

0

मुझे पता चला कि इसे कैसे किया जाए। मैंने एक टेक्स्टबॉक्स बनाया, इसे एक req फ़ील्ड सत्यापनकर्ता असाइन किया। स्क्रीन से टेक्स्टबॉक्स 99 99 9 पीएक्स रखें। मेरे सी # में मैंने कहा कि चेक बॉक्स चेक किया गया है, textbox.text = ""; चेकबॉक्स चेक में ईवेंट बदल गया मैंने कहा कि चेक बॉक्स चेक किया गया है तो textbox.text = "1"; किसी भी अन्य समाधान से मुझे बहुत आसान लगता है

संपादित करें: एक छिपे हुए क्षेत्र का उपयोग करने के लिए बेहतर।

+0

अपने खुद के उत्तर को सही के रूप में स्वीकार करने के लिए मत भूलना – abatishchev

0

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

0

आप है कि आप ऊपर लेकिन एक वापसी के साथ किया था कि अगर

if (!cbxTerms.Checked) 
{requiredlabel.text="*"; 
return;} 

तरह की जाँच नहीं की आप उपयोगकर्ता कि चौथाई क्षेत्र की जरूरत है बताने के लिए मैन्युअल रूप से एक लेबल सेट कर सकते हैं कर सकते हैं

+0

मेरे पास जो समस्या है, वह यह है कि मेरे द्वारा प्रदान किए गए कोड के साथ, बॉक्स का सत्यापन करने वाले सत्यापन समूह को बॉक्स में चेक नहीं होने पर विफल नहीं होता है। –

0

स्कॉट मिशेल था इस पर लेख। http://www.4guysfromrolla.com/articles/121907-1.aspx http://www.4guysfromrolla.com/articles/092006-1.aspx

मुझे लगता है कि यह एक अलग दृष्टिकोण है, लेकिन मैं इसका इस्तेमाल कुछ समय पहले इसी तरह की स्थिति को संभालने के लिए और यह बहुत अच्छी तरह से काम करने के लिए लग रहा था।

0

तुम भी पोस्टबैक रोका जा सकता है कि सभी मान्यता सामान कर रही है यह रोका जा सकता है, तो :)

यदि चेकबॉक्स

Button1.Attributes["onclick"] = 
     "if (!$get('" + CheckBox1.ClientID + "').checked){alert('Agree with us,plz!');return false;}"; 

चेक नहीं किया गया या अमान्य यदि आप समूह के लिए मजबूर कर के लिए thurst tou कर सकते हैं यह ग्राहक के पक्ष पर अपने खुद के सत्यापन जीत:

function myStartUpValidation(group){ 
    var result=true; 
    //Page_ClientValidate(group); to validate group 
    for (var i = 0; i < Page_Validators.length; i++) { 
     if(Page_Validators[i].validationGroup==group){ 
     try{ 
      ValidatorValidate(Page_Validators[i]); //this forces validation in all groups 
      if(Page_Validators[i].isvalid==false){result=false;} 
      }catch(err){} 
     } 
    } 
    return result; 
} 

या एक अतिरिक्त सत्यापनकर्ता ...

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

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