为什么我的ASP验证器不使用javascript?

时间:2016-07-11 15:24:07

标签: javascript c# jquery asp.net validation

我想使用ASP验证器:Requiredfieldvalidator,Regularexpressionvalidator。 我正在使用visual studio 2013,并且在我的web.config中没有关于验证的任何内容。

问题是页面上没有使用javascript验证,我确实在application_start方法的global.asax文件中包含了这一行:

ScriptManager.ScriptResourceMapping.AddDefinition("jquery", new ScriptResourceDefinition { Path = "~/js/jquery-2.2.4.min.js"});

路径正确且jquery文件在那里。

请求ASPX页面:

<label>Naam</label>
<asp:TextBox ID="TextBox_name" CssClass="form-control" placeholder="Naam" CausesValidation="true" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator_name" runat="server" ErrorMessage="Vul uw naam in" Display="None" ControlToValidate="TextBox_name"></asp:RequiredFieldValidator>
<asp:Button ID="Button_send" runat="server" Text="Verstuur" CssClass="btn btn-default" OnClick="Button_send_Click" CausesValidation="true" />

1 个答案:

答案 0 :(得分:0)

为了在客户端查看验证指标,您可以定义验证器的Text属性,并将其Display属性设置为DynamicStatic

<asp:RequiredFieldValidator Display="Dynamic" Text="Missing value!" ForeColor="Red" ... />

但请注意,只有在文本失去焦点之前对文本进行了一些更改(在这种情况下删除了整个内容)时才会触发验证。

如果您想在每次TextBox失去焦点时强制进行验证,即使未对其内容进行任何更改,您也可以处理blur事件:

<asp:TextBox onblur="validateText();" ... />

使用以下事件处理程序:

<script type="text/javascript">
    function validateText() {
        var validator = document.getElementById('<%= RequiredFieldValidator_name.ClientID %>');
        if (validator) {
            ValidatorValidate(validator);
        }
    }    
</script>