문제

지불한 수수료가 지불해야 할 수수료 금액을 초과하지 않는지 확인하는 .Net 2.0 웹 사이트의 사용자 컨트롤에 JavaScript로 사용자 정의 유효성 검사 기능이 있습니다.

유효성 검사기 코드를 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>

함수를 찾을 수 없는 이유에 대한 아이디어가 있습니까?마스터 페이지나 소비 페이지에 기능을 추가하지 않고도 이 문제를 해결할 수 있나요?

도움이 되었습니까?

해결책

인수 이름을 다음으로 변경해 보십시오. sender 그리고 args.그리고 작동이 끝나면 통화를 다음으로 전환하세요. ScriptManager.RegisterClientScriptBlock, AJAX 사용에 관계없이.

다른 팁

.Net 2.0 및 Ajax를 사용하는 경우 다음을 사용해야 합니다.

ScriptManager.RegisterClientScriptBlock

이전 Page.ClientScript 버전보다 Ajax 환경에서 더 잘 작동합니다.

또한 다음을 사용할 수도 있습니다.

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

그러면 요소가 호출되었는지 확인할 필요 없이 요소의 클라이언트 ID가 자동으로 확인됩니다. 'ctl00_footerContentHolder_Fees1_FeeDue'.

내 자바스크립트가 인식되지 않는 이유에 대한 답변을 여전히 원하지만 그 동안 찾은 해결책은(처음부터 수행했어야 했던) 다음을 사용하는 것입니다. Asp:CompareValidator 대신에 Asp:CustomValidator.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top