ASP.Net personalizat pe partea de client de validare

voturi
23

Am o funcție de validare personalizată în JavaScript într-un control de utilizator pe un site web .Net 2.0 care verifică pentru a vedea că taxa plătită nu depășește suma datorată comision.

Am plasat codul de validator în ascxdosar, și am încercat , de asemenea , folosind Page.ClientScript.RegisterClientScriptBlock()și , în ambele cazuri , incendiile de validare, dar nu pot găsi funcția JavaScript.

Ieșirea din consola de eroare Firefox este feeAmountCheck is not defined. Aici este funcția (acest lucru a fost luată direct din firefox-> vizualizare sursă)

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

Orice idei cu privire la motivul pentru care funcția nu este găsit? Cum pot remedia acest lucru, fără a fi nevoie să adăugați funcția de la pagina mea de master sau pagina consumatoare?

Întrebat 04/08/2008 la 17:44
sursa de către utilizator
În alte limbi...                            


4 răspunsuri

voturi
12

Încercați să schimbați numele argument pentru senderși args. Și, după ce l - au de lucru, a comuta apelul pe la ScriptManager.RegisterClientScriptBlock, indiferent de utilizarea AJAX.

Publicat 04/08/2008 la 18:02
sursa de către utilizator

voturi
6

Când utilizați .Net 2.0 si Ajax - ar trebui să utilizați:

ScriptManager.RegisterClientScriptBlock

Acesta va funcționa mai bine în medii Ajax, apoi vechea versiune Page.ClientScript

Publicat 04/08/2008 la 17:51
sursa de către utilizator

voturi
0

De asemenea, ai putea folosi:

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

Acest lucru va rezolva automat id - ul de client pentru elementul fără a fi nevoie să dau seama că se numește 'ctl00_footerContentHolder_Fees1_FeeDue'.

Publicat 13/06/2009 la 19:10
sursa de către utilizator

voturi
0

În timp ce aș dori în continuare un răspuns de ce javascript mea nu era recunoscută, soluția am găsit între timp (și ar fi trebuit făcut în primul rând) , este de a folosi un Asp:CompareValidatorloc de un Asp:CustomValidator.

Publicat 04/08/2008 la 20:13
sursa de către utilizator

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