0

カスタムバリデーターがあり、サーバー側ではなくクライアント側で検証する必要があります。これが私の関数です:

function checkCampDockTemplate(source, args)
    {
        var campDockTemplate = document.getElementById('<%= drpCampDockTemplate.ClientID %>');

        if (campDockTemplate.selectedIndex == 0)
        {
            args.IsValid = false;
        }
        else
        {
            args.IsValid = true;
        }
    }



<asp:CustomValidator ID="campaignDocketTemplateCustomValidator" runat="server" ErrorMessage="Please select a Campaign Docket Template"
            ControlToValidate="drpCampDockTemplate" OnServerValidate="campaignDocketTemplateCustomValidator_ServerValidate"
            ClientValidationFunction="javascript:checkCampDockTemplate()"></asp:CustomValidator>

誰かがこれについて私を助けてくれますか?前もって感謝します。

4

1 に答える 1

2

関数の形式はほとんど正しいですが、クライアント側の関数をClientValidationFunction属性でのみ名前で参照する必要があります。

<asp:CustomValidator ID="campaignDocketTemplateCustomValidator" 
runat="server" 
ErrorMessage="Please select a Campaign Docket Template"
ControlToValidate="drpCampDockTemplate"     
OnServerValidate="campaignDocketTemplateCustomValidator_ServerValidate"
ClientValidationFunction="checkCampDockTemplate"/>

OnServerValidateサーバー側の検証も完全に削除する場合は、CustomValidator から属性を削除できます。

ただし、一般的に言えば、JavaScript がオフになっている場合に備えて、クライアント側だけでなくサーバー側でも入力を検証するのが賢明です。

于 2011-12-15T10:18:41.623 に答える