2

cc1:Editor を使用するテキスト ボックスがあり、必須フィールド バリデーターを配置すると、ページが読み込まれるとすぐに表示されます。エラーを非表示にして、html エディター ボックスが空の場合にのみ表示できるようにするにはどうすればよいですか?

<code><cc1:Editor ID="txtDescription" Width="500px" Height="525px" 
 runat="server" TextMode="SingleLine" /></code>
<code>
<asp:RequiredFieldValidator ID="rfvDescription" runat="server" 
ControlToValidate="txtDescription"  
ErrorMessage="Must include Description" Font-Bold="True"></asp:RequiredFieldValidator>
</code>

<code><asp:Button ID="SubmitBtn" runat="server" 
Text="Submit" OnClick="SubmitBtn_Click" class="form-td" Height="30px" />

<script language="javascript" type="text/javascript">
    document.onkeypress = keyhandler;
    function keyhandler(e) {
      Key = window.event.keyCode; if (Key == 13) {
        var obj = document.getElementById('<%=SubmitBtn.ClientID%>');
        obj.focus();
        obj.click();
        }
    }
</script>
4

1 に答える 1

0

はい、送信ボタンのクライアント側とサーバー側の検証をポストバックイベントでカスタム検証を実行できるため、必須のフィールドバリデーターを削除できます。次の例を確認してください:aspxページ

<p>

    <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="javascript:return ValidateEditor();" 
        ValidationGroup="myGroup" onclick="Button1_Click" />
    <br />
</p>
<asp:Label ID="lblMessage" runat="server" ForeColor="Red"></asp:Label>
<cc1:Editor ID="Editor1" runat="server" />
<script type="text/javascript">
    function ValidateEditor() {
        var txtEditor = $find('<%=Editor1.ClientID %>');
        if (txtEditor.get_content() == null || txtEditor.get_content() == '') {
            alert('Text cannot be empty');
            document.getElementById('<%=lblMessage.ClientID %>').innerHTML='Text cannot be empty';
            return false;
        }
        else
            return true;
    }
</script>

サーバー側

 if (string.IsNullOrEmpty(Editor1.Content.ToString()))
        {
            lblMessage.Text = "Text cannot be empty";
        }
        else
        {
            // Do your work here
        }
于 2012-10-09T16:55:43.613 に答える