Pergunta

Eu tenho um costume função de validação em JavaScript em um controle de usuário em um .Net 2.0 web site que verifica que o valor pago não é em excesso ao valor da taxa devida.

Eu tenho colocado o validador de código no ascx arquivo, e eu também tentei usar Page.ClientScript.RegisterClientScriptBlock() e, em ambos os casos, a validação de incêndios, mas não é possível encontrar a função JavaScript.

A saída no Firefox erro do console é "feeAmountCheck is not defined".Aqui é a função (esta foi levado diretamente a partir do firefox->exibir código fonte)

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

Alguma idéia de por que a função não está sendo encontrado?Como posso corrigir isso sem ter de adicionar a função a minha página principal, ou a consumir página?

Foi útil?

Solução

Tente alterar o argumento de nomes para sender e args.E, depois de tê-lo funcionando, mudar a chamada para ScriptManager.RegisterClientScriptBlock, independentemente do AJAX usar.

Outras dicas

Quando você estiver usando .Net 2.0 e Ajax - você deve usar:

ScriptManager.RegisterClientScriptBlock

Ele vai trabalhar melhor em Ajax ambientes, em seguida, a Página antiga.ClientScript versão

Você também pode usar:

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

Que vai resolver automaticamente o cliente de id para o elemento sem você ter que descobrir o que é chamado de 'ctl00_footerContentHolder_Fees1_FeeDue'.

Enquanto eu ainda gostaria de uma resposta para o porquê do meu javascript não estava sendo reconhecido, a solução que eu encontrei, entretanto (e deveria ter feito em primeiro lugar) é a utilização de um Asp:CompareValidator em vez de um Asp:CustomValidator.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top