ASP.Net Προσαρμοσμένη Client-Side Επικύρωση

ψήφοι
23

Έχω μια προσαρμοσμένη συνάρτηση επικύρωσης σε JavaScript σε ένα στοιχείο ελέγχου χρήστη σε μια ιστοσελίδα .Net 2.0 που ελέγχει για να δει ότι το τέλος που καταβάλλεται δεν υπερβαίνει το ποσό των τελών που οφείλονται.

Έχω τοποθετήσει τον κώδικα επικύρωσης στο ascxαρχείο, και έχω επίσης δοκιμάσει τη χρήση Page.ClientScript.RegisterClientScriptBlock()και στις δύο περιπτώσεις οι πυρκαγιές επικύρωσης, αλλά δεν μπορεί να βρει τη λειτουργία JavaScript.

Η έξοδος στην κονσόλα σφαλμάτων του Firefox είναι feeAmountCheck is not defined. Εδώ είναι η λειτουργία (αυτό λαμβάνονται απευθείας από firefox-> εμφάνιση κώδικα)

<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>

Οποιεσδήποτε ιδέες ως προς το γιατί η λειτουργία δεν είναι να βρεθεί; Πώς μπορώ να διορθωθεί αυτό χωρίς να χρειάζεται να προσθέσετε τη λειτουργία στην κύρια σελίδα μου ή καταναλώνουν σελίδα;

Δημοσιεύθηκε 04/08/2008 στις 17:44
πηγή χρήστη
Σε άλλες γλώσσες...                            


4 απαντήσεις

ψήφοι
12

Προσπαθήστε να αλλάξετε τα ονόματα επιχείρημα για senderκαι args. Και, αφού έχετε αυτό που εργάζονται, μεταφέρετε την κλήση πάνω σε ScriptManager.RegisterClientScriptBlock, ανεξάρτητα από τη χρήση AJAX.

Απαντήθηκε 04/08/2008 στις 18:02
πηγή χρήστη

ψήφοι
6

Όταν χρησιμοποιείτε .Net 2.0 και Ajax - θα πρέπει να χρησιμοποιήσετε:

ScriptManager.RegisterClientScriptBlock

Θα λειτουργήσει καλύτερα σε Ajax περιβάλλον, τότε η παλιά έκδοση Page.ClientScript

Απαντήθηκε 04/08/2008 στις 17:51
πηγή χρήστη

ψήφοι
0

Επίσης, θα μπορούσατε να χρησιμοποιήσετε:

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

Αυτό θα λύσει αυτόματα το αναγνωριστικό πελάτη για το στοιχείο χωρίς να χρειάζεται να καταλάβουμε ότι αυτό λέγεται 'ctl00_footerContentHolder_Fees1_FeeDue'.

Απαντήθηκε 13/06/2009 στις 19:10
πηγή χρήστη

ψήφοι
0

Αν και θα ήθελα ακόμα μια απάντηση στο γιατί javascript μου δεν αναγνωρίζεται, η λύση θα βρεθεί εν τω μεταξύ (και θα έπρεπε να γίνει κατά πρώτο λόγο) είναι να χρησιμοποιήσετε ένα Asp:CompareValidatorαντί για ένα Asp:CustomValidator.

Απαντήθηκε 04/08/2008 στις 20:13
πηγή χρήστη

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