asp.net - title設定 - asp是什麼




ASP.Net自定義客戶端驗證 (3)

你也可以使用:

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

這將自動解析元素的客戶端ID,而不必弄清楚它被稱為'ctl00_footerContentHolder_Fees1_FeeDue'

我在.Net 2.0網站上的用戶控件中的JavaScript中有一個自定義的驗證函數,它檢查支付的費用是否不超過應付的費用。

我把驗證器代碼放在ascx文件中,我也嘗試使用Page.ClientScript.RegisterClientScriptBlock() ,在這兩種情況下,驗證都會觸發,但無法找到JavaScript函數。

Firefox錯誤控制台的輸出是“feeAmountCheck未定義”。 這裡是函數(這是直接從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>

任何想法,為什麼函數沒有被發現? 我怎樣才能補救這一點,而不必將功能添加到我的母版頁或消費頁面?


當你使用.Net 2.0和Ajax時,你應該使用:

ScriptManager.RegisterClientScriptBlock

它將在Ajax環境中更好地工作,然後舊的Page.ClientScript版本


雖然我仍然想回答為什麼我的javascript沒有被識別,我同時發現的解決方案(應該首先完成)是使用Asp:CompareValidator而不是Asp:CustomValidator





validation