ASP.Net personnalisée côté client validation

voix
23

J'ai une fonction de validation personnalisée en JavaScript dans un contrôle utilisateur sur un site Web .Net 2.0 qui vérifie que les frais payés ne dépasse pas le montant des frais exigibles.

J'ai placé le code validateur dans le ascxfichier, et je l' ai également essayé d' utiliser Page.ClientScript.RegisterClientScriptBlock()et dans les deux cas , les incendies de validation, mais ne trouve pas la fonction JavaScript.

La sortie dans la console d'erreur de Firefox est feeAmountCheck is not defined. Voici la fonction (ce qui a été prise directement à partir firefox-> voir la 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>

Toutes les idées pour lesquelles la fonction n'est pas trouvé? Comment puis-je remédier à cela sans avoir à ajouter la fonction à ma page principale ou de consommer la page?

Créé 04/08/2008 à 17:44
source utilisateur
Dans d'autres langues...                            


4 réponses

voix
12

Essayez de changer les noms des arguments à senderet args. Et, une fois que vous l' avez travailler, passer l'appel vers ScriptManager.RegisterClientScriptBlock, quel que soit l' utilisation d' AJAX.

Créé 04/08/2008 à 18:02
source utilisateur

voix
6

Lorsque vous utilisez .Net 2.0 et Ajax - vous devez utiliser:

ScriptManager.RegisterClientScriptBlock

Il fonctionnera mieux dans des environnements Ajax puis l'ancienne version Page.ClientScript

Créé 04/08/2008 à 17:51
source utilisateur

voix
0

vous pouvez également utiliser:

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

Cela résoudra automatiquement l'identifiant client pour l'élément sans que vous ayez à comprendre qu'il est appelé 'ctl00_footerContentHolder_Fees1_FeeDue'.

Créé 13/06/2009 à 19:10
source utilisateur

voix
0

Bien que je voudrais encore une réponse à pourquoi mon javascript n'a pas été reconnu, la solution que je trouve dans l'intervalle (et aurait dû faire en premier lieu) est d'utiliser un au Asp:CompareValidatorlieu d'un Asp:CustomValidator.

Créé 04/08/2008 à 20:13
source utilisateur

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