CustomValidator未显示来自javascript的错误消息

时间:2014-06-20 19:55:57

标签: javascript asp.net

我在服务器端练习客户端验证。我在客户端编写了一个代码来验证名称,它正在重新调整值。但问题是,对于不正确的值,一旦焦点从文本框中丢失,就不会显示错误消息。 我的实现如下:

更新

 <script type="text/javascript">
    function validateText(osrc, args) {
        var textvalue = args;
        var pattern = /^[a-zA-Z.]{3,25}$/
        if (textvalue != null || textvalue != "") {
            if (pattern.test(textvalue)) {

                args.isValid = true;
            }
            else
                args.isValid = false;
        }
        else args.isValid = false;
        return;
    }
</script>

和aspx页面内容

<asp:TextBox runat="server" ID="txtFirstName" CssClass="form-control" />
            <asp:CustomValidator runat="server" Display="Dynamic" CssClass="text-danger"
                 ControlToValidate="txtFirstName" ToolTip="Incorrect Text" ErrorMessage="*"
                 EnableViewState="false" ValidateEmptyText="true" EnableClientScript="true"
                 Enabled="true" ClientValidationFunction="validateText"></asp:CustomValidator>//This validator is not showing the error message 

它出了什么问题,需要帮助。

1 个答案:

答案 0 :(得分:2)

您必须将 args.IsValid 的值设置为 TRUE FALSE ,而不是仅返回 true / false < / em>的。您还需要使用 args.Value (注意V为大写)来正确设置 textvalue 。并且您只应该在表达式有效时返回:

<强> JavaScript的:

function validateText(osrc, args) {
    var textvalue = args.Value; //notice V is uppercase!
    var pattern = /^[a-zA-Z.]{3,25}$/
    if (textvalue != null || textvalue != "") {
        if (pattern.test(textvalue)) {
            args.IsValid = true;
            return; //notice we ONLY return when the expression IS valid
        }
        args.IsValid = false;
    }
    args.IsValid = false;
}

<强> ASPX:

<div class="col-md-10">
    <asp:Label ID="Label1" runat="server" AssociatedControlID="txtFirstName" 
               CssClass="col-md-2 control-label">First Name</asp:Label>
    <asp:TextBox runat="server" ID="txtFirstName" CssClass="form-control" />
    <asp:CustomValidator ID="CustomValidator1" runat="server" 
                         Display="Dynamic" ControlToValidate="txtFirstName" 
                         ToolTip="Incorrect Text" ErrorMessage="*" 
                         EnableViewState="false" 
                         ValidateEmptyText="true" 
                         EnableClientScript="true" 
                         Enabled="true" 
                         ClientValidationFunction="validateText">
        Please input a valid First Name!
    </asp:CustomValidator>
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"  
                                ControlToValidate="txtFirstName"
                                CssClass="text-danger" 
                                ErrorMessage="First name is required" 
                                ToolTip="First name is required." 
                                EnableViewState="False" />
</div>