【问题标题】:How do I validate a multiline asp:textbox control using custom validators and JavaScript?如何使用自定义验证器和 JavaScript 验证多行 asp:textbox 控件?
【发布时间】:2009-06-14 16:44:45
【问题描述】:

我正在尝试验证多行文本框控件,如下所示:

我的内容页面(我正在使用母版页)包含一个带有自定义验证器的文本框控件:

    <asp:TextBox ID="IssueDescription" TextMode="MultiLine" 
    Columns="40" Rows="5" runat="server" CssClass="textbox">
    </asp:TextBox>
<asp:CustomValidator ID="IssueDescValidator" runat="server" 
ErrorMessage="Please select a valid option" 
ClientValidationFunction="IssueDescValidation" 
ControlToValidate="IssueDescription"></asp:CustomValidator>

我正在使用ClientValidationFunction 属性进行javascript 验证。 javascript 如下所示:

private static string IssueDescValidator() {
    string issuedescvalidator = @"
            function IssueDescValidation(sender, args) {
                var issuedesc = document.getElementById(sender.controltovalidate);
                if (issuedesc.innerText.length > 0) { args.IsValid; };
            }";

    return issuedescvalidator;
}

上述验证代码位于自定义验证器类中,该类还包含下拉列表控件的验证代码,我在与此多行文本框相同的内容页面上拥有这些控件。

由于某种原因,当文本框不包含文本时,我的多行文本框的 Javascript 验证器没有触发。问题是这正是我要验证的条件。当我输入一些随机文本然后尝试提交表单时,验证器会触发。

下拉列表完美验证。我认为我没有使用正确的属性来查找文本框的长度,但我不确定此时出了什么问题。有什么想法吗?

【问题讨论】:

    标签: javascript webforms textbox validation


    【解决方案1】:

    您需要将验证器上的 ValidateEmptyText 属性设置为 True。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-08
      • 2016-02-10
      • 1970-01-01
      相关资源
      最近更新 更多