ASP.Net Custom klientsiden validering

stemmer
23

Jeg har en tilpasset validering funksjon i Javascript i en brukerkontroll på en Net 2.0 nettsted som sjekker for å se at avgiften betales ikke er i overkant av avgiften beløpet.

Jeg har plassert validator koden i ascxfilen, og jeg har også prøvd å bruke Page.ClientScript.RegisterClientScriptBlock()og i begge tilfeller validerings branner, men kan ikke finne Javascript-funksjonen.

Utgangen i Firefox feil konsollen er feeAmountCheck is not defined. Her er funksjonen (dette ble tatt direkte fra firefox-> vis kilde)

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

Noen ideer om hvorfor funksjonen ikke blir funnet? Hvordan kan jeg løse dette uten å legge funksjonen til min herre side eller forbruker side?

Publisert på 04/08/2008 klokken 16:44
kilden bruker
På andre språk...                            


4 svar

stemmer
12

Prøv å endre argumentnavn til senderog args. Og etter at du har det fungerer, overføre samtalen over til ScriptManager.RegisterClientScriptBlock, uavhengig av AJAX bruk.

Svarte 04/08/2008 kl. 17:02
kilden bruker

stemmer
6

Når du bruker Net 2.0 og Ajax - bør du bruke:

ScriptManager.RegisterClientScriptBlock

Det vil fungere bedre i Ajax miljøer da den gamle Page.ClientScript versjon

Svarte 04/08/2008 kl. 16:51
kilden bruker

stemmer
0

Også du kan bruke:

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

Det vil automatisk løse klient id for elementet uten at du trenger å finne ut at det heter 'ctl00_footerContentHolder_Fees1_FeeDue'.

Svarte 13/06/2009 kl. 18:10
kilden bruker

stemmer
0

Mens jeg fortsatt ønsker et svar på hvorfor min javascript ikke ble gjenkjent, løsningen fant jeg i mellomtiden (og burde ha gjort i første omgang) er å bruke en Asp:CompareValidatori stedet for en Asp:CustomValidator.

Svarte 04/08/2008 kl. 19:13
kilden bruker

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