एएसपी.Net कस्टम क्लाइंट-साइड सत्यापन

मेरे पास .NET 2.0 वेब साइट पर उपयोगकर्ता नियंत्रण में जावास्क्रिप्ट में एक कस्टम सत्यापन फ़ंक्शन है जो यह देखने के लिए जांच करता है कि भुगतान किया गया शुल्क शुल्क की अतिरिक्त राशि से अधिक नहीं है।

मैंने सत्यापन कोड को ascx फ़ाइल में रखा है, और मैंने Page.ClientScript.RegisterClientScriptBlock() का उपयोग करने का भी प्रयास किया है और दोनों मामलों में सत्यापन आग लगती है, लेकिन नहीं मिल पाती जावास्क्रिप्ट फ़ंक्शन।

The output in Firefox's error console is "feeAmountCheck is not defined". Here is the function (this was taken directly from firefox->view source)

<script type="text/javascript">
    function feeAmountCheck(source, arguments)
    {
        var amountDue = document.getElementById('ctl00_footerContentHolder_Fees1_FeeDue');
        var amountPaid = document.getElementById('ctl00_footerContentHolder_Fees1_FeePaid');

        if (amountDue.value > 0 && amountDue >= amountPaid)
        {
            arguments.IsValid = true;
        }
        else
        {
            arguments.IsValid = false;
        }

        return arguments;
    }
</script>

कोई विचार क्यों नहीं है कि समारोह क्यों नहीं मिल रहा है? मेरे मास्टर पेज या उपभोग करने वाले पृष्ठ पर फ़ंक्शन जोड़ने के बिना मैं इसका समाधान कैसे कर सकता हूं?

0
जोड़ा संपादित
विचारों: 1

4 उत्तर

जबकि मुझे अभी भी एक जवाब चाहिए कि क्यों मेरी जावास्क्रिप्ट को पहचाना नहीं जा रहा था, इस दौरान मैंने जो समाधान पाया (और पहले स्थान पर किया जाना चाहिए) को Asp: तुलना वैलिडेटर के बजाय उपयोग करना है एक Asp: CustomValidator

0
जोड़ा

तर्क कोड को प्रेषक और args में बदलने का प्रयास करें। और, आपके काम करने के बाद, AJAX उपयोग के बावजूद, कॉल को ScriptManager.RegisterClientScriptBlock पर स्विच करें।

0
जोड़ा

जब आप .NET 2.0 और Ajax का उपयोग कर रहे हैं - आपको इसका उपयोग करना चाहिए:

ScriptManager.RegisterClientScriptBlock

यह अजाक्स वातावरण में तब बेहतर काम करेगा जब पुराना पेज। क्लाइंटस्क्रिप्ट संस्करण

0
जोड़ा

इसके अलावा आप इसका उपयोग कर सकते हैं:

var amountDue = document.getElementById('<%=YourControlName.ClientID%>');

वह तत्व के लिए क्लाइंट आईडी को स्वचालित रूप से हल कर देगा, इसके बिना आपको यह पता लगाना होगा कि इसे 'ctl00_footerContentHolder_Fees1_FeeDue' कहा जाता है।

0
जोड़ा