2009-06-14 43 views
1

我想验证一个多行TextBox控件,如下所示:如何使用自定义验证器和JavaScript验证多行asp:textbox控件?

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

<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验证器在文本框不包含文本时不会触发。问题是这正是我想验证的条件。当我输入一些随机文本,然后尝试提交表单时,验证器会触发。

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

回答