2008-08-04 16 views
24

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

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

फ़ायरफ़ॉक्स के त्रुटि कंसोल में आउटपुट "शुल्कआर्थक जांच परिभाषित नहीं है"। यहाँ समारोह

<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> 
क्यों के रूप में

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

उत्तर

13

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

7

जब आप नेट 2.0 और अजाक्स का उपयोग कर रहे हैं - आप का उपयोग करना चाहिए:

ScriptManager.RegisterClientScriptBlock 

यह तो अजाक्स के वातावरण में बेहतर काम करेंगे वर्ष Page.ClientScript संस्करण

0

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

0

इसके अलावा, आप इस्तेमाल कर सकते हैं:

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

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

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