"$" निकालें से पहले ASP.Net RangeValidator स्क्रिप्ट निष्पादित करता है

वोट
1

मैं कैसे चलाने के लिए इनपुट के onchange स्क्रिप्ट मजबूर कर सकते हैं इससे पहले कि RangeValidator की पटकथा?

मैं जब उपयोगकर्ता एक डॉलर चिह्न या अल्पविराम में प्रवेश करती है एक असफल सत्यापन रोकना चाहते हैं।

function cleanUp(str) {
    re = /^\$|,/g;
    return str.replace(re, ); // remove $ and ,
}

<input type=text id=salary runat=server
onchange=this.value=cleanUp(this.value) />

<asp:RangeValidator ID=salaryValidator 
    runat=server ErrorMessage=Invalid Number
    ControlToValidate=salary Type=Double />

अद्यतन:
मैं एक CustomValidator कि सीमा जाँच करता है और एक मुद्रा RegEx का उपयोग करता है का उपयोग करने का फैसला किया। धन्यवाद माइकल Kniskern।

function IsCurrency(sender, args) {
    var input = args.Value;

    // Check for currency formatting.
    // Expression is from http://regexlib.com/REDetails.aspx?regexp_id=70
    re = /^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(.[0-9][0-9])?$/;
    isCurrency = input.match(re);

    if (isCurrency) {
        // Convert the string to a number.
        var number = parseFloat(CleanUp(input));
        if (number != NaN) {
            // Check the range.
            var min = 0;
            var max = 1000000;
            if (min <= number && max >= number) {
                // Input is valid.
                args.IsValid = true;
                return;
            }
        }
    }

    // Input is not valid if we reach this point.
    args.IsValid = false;
    return;
}

function CleanUp(number) {
    re = /^\$|,/g;
    return number.replace(re, ); // remove $ and ,
}       

<input type=text id=salary runat=server />

<asp:CustomValidator ID=saleryValidator ControlToValidate=salary runat=server 
ErrorMessage=Invalid Number ClientValidationFunction=IsCurrency />
09/12/2008 को 22:37
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


4 जवाब

वोट
3

मुझे लगता है मैं उस पर सुधार कर सकते हैं। इस के लिए अल्पविराम और सेंट अंक वैकल्पिक बनाता है:

^\$?([0-9]{1,3},?([0-9]{3},?)*[0-9]{3}|[0-9]+)(\.[0-9]{0,2})?$
04/03/2011 को 01:02
का स्रोत उपयोगकर्ता

वोट
3

यदि आप एक CustomerValidator नियंत्रण का उपयोग करने की कोशिश की और जे एस सफाई तरीकों और RangeValidator विधि की कार्यक्षमता संयोजित है।

09/12/2008 को 23:09
का स्रोत उपयोगकर्ता

वोट
0

बस पाया है कि आप एक है '।' दशमलव बिंदु के लिए है, लेकिन इसका मतलब है कि regex उस जगह में किसी भी चरित्र को स्वीकार करेंगे। आप का उपयोग करना चाहिए \.कि दशमलव बिंदु के लिए।

/^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(\.[0-9][0-9])?$/
18/11/2009 को 00:45
का स्रोत उपयोगकर्ता

वोट
0

स्क्रिप्ट पंजीकरण से यह करने के लिए एक तरीका होता है; लेकिन क्यों एक नियमित अभिव्यक्ति सत्यापनकर्ता का उपयोग नहीं यकीन है कि इनपुट उचित है बनाने के लिए?

इसके अलावा, रेंज सत्यापनकर्ता क्षेत्रों पर निष्पादित onBlur js घटना, परिवर्तन पर नहीं।

09/12/2008 को 22:55
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more