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

本文关键字:javascript 我的 ASP 验证 为什么 | 更新日期: 2023-09-27 17:56:16

我想使用 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" />

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

为了在客户端查看验证指示器,您可以定义验证器的 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>