为什么我的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" />
为了在客户端查看验证指示器,您可以定义验证器的 Text 属性,并将其 Display
属性设置为 Dynamic
或 Static
:
<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>