首页 / 知识

关于javascript:ASP.Net自定义客户端验证

2023-04-11 15:00:00

关于javascript:ASP.Net自定义客户端验证

ASP.Net Custom Client-Side Validation

我在.Net 2.0网站上的用户控件中的JavaScript中有一个自定义验证功能,该功能检查是否已支付的费用不超过应缴的费用金额。

我已将验证程序代码放置在ascx文件中,并且我还尝试使用Page.ClientScript.RegisterClientScriptBlock(),在两种情况下均会触发验证,但找不到JavaScript函数。

Firefox错误控制台中的输出为"feeAmountCheck is not defined"。 这是函数(直接从firefox-> view源获取)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<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;
    }

关于为什么找不到该功能的任何想法? 如何解决此问题而不必将功能添加到我的母版页或使用页上?


尝试将参数名称更改为senderargs。 并且,在工作之后,无论使用AJAX如何,都将呼叫切换到ScriptManager.RegisterClientScriptBlock


当您使用.Net 2.0和Ajax时-应该使用:

1
ScriptManager.RegisterClientScriptBlock

在Ajax环境中,它将比旧的Page.ClientScript版本更好地工作。


您也可以使用:

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

这将自动解析该元素的客户端ID,而无需弄清楚该元素的名称是'ctl00_footerContentHolder_Fees1_FeeDue'


尽管我仍然想回答为什么无法识别我的javascript的问题,但与此同时,我发现的解决方案(应该首先完成)是使用Asp:CompareValidator而不是Asp:CustomValidator


验证自定义客户端费用

最新内容

热门文章

推荐文章

标签云

猜你喜欢