2010-04-22 12 views
6

मैं पाठ बॉक्स और CompareValidator जो नीचे मैंने सोचा था कि निम्न रूपों में इनपुट की अनुमति होगी बनाया है:मुद्रा इनपुट मान्य करने के लिए सबसे अच्छा तरीका है?

  • 5,00
  • $ 5,00

दुर्भाग्य से इसके साथ संस्करण की अनुमति नहीं दे रहा है इसमें डॉलर का संकेत। यदि आप डॉलर के संकेत की अनुमति नहीं देते हैं तो मुद्रा के खिलाफ एक प्रकार की जांच करने का क्या मतलब है? क्या इस प्रतीक को अनुमति देने का कोई तरीका है?

  <asp:TextBox ID="tb_CostShare" runat="server" Text='<%# Eval("CostShare", "{0:$0.00}")%>' CausesValidation="true" /> 
      <asp:CompareValidator ID="vld_CostShare" 
            runat="server" 
            ControlToValidate="tb_CostShare" 
            Operator="DataTypeCheck" 
            Type="Currency" 
            ValidationGroup="vld" 
            ErrorMessage="You must enter a dollar amount for 'Cost Share'." />  
+0

यदि आप '{0: c}' का उपयोग करते हैं तो क्या होगा? – Greg

+3

एक मुद्रा सत्यापन में USD के अलावा अन्य मुद्राएं शामिल हो सकती हैं ... –

+0

@ ऑस्टिन - मैं यूएसडी के अलावा कुछ भी मान्य नहीं करना चाहता हूं। @ ग्रेग - मैं मान्य करने के लिए {0: c} का उपयोग कैसे करूं? –

उत्तर

8

तुलना वैलिडेटर मुद्रा प्रतीकों का समर्थन नहीं करता है। आप अपने इनपुट नियंत्रण को $ के साथ उपसर्ग कर सकते हैं या नियमित अभिव्यक्ति सत्यापनकर्ता का उपयोग कर सकते हैं, this पृष्ठ का एक उदाहरण है।

निम्नलिखित पैटर्न अपने उदाहरण (http://www.regexlib.com के सौजन्य से) मिलान हो जाएगा:

^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(.[0-9][0-9])?$ 
1

इसके अलावा, आप के साथ या $ बिना स्ट्रिंग पार्स करने में, एक कस्टम सत्यापनकर्ता लिख ​​सकते हैं। लेकिन आपको क्लाइंट साइड सत्यापन प्राप्त करने के लिए कुछ जावास्क्रिप्ट लिखना होगा।

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