javascript - 有什么方法可以知道 .net 必填字段验证器是从 js 启用还是禁用?

标签 javascript .net requiredfieldvalidator

我正在尝试获取 .aspx 文件中“必填字段验证器”的状态。

当我说状态时,我并不是说它在内容方面是有效还是无效,而是它是否启用。

我知道可以设置启用/禁用状态 ValidatorEnable(control, true);ValidatorEnable(control, false);

那么有没有办法知道它是启用还是禁用?

提前致谢。

最佳答案

您可以在客户端执行此操作。因此,假设您有一个必填字段验证器:

<asp:TextBox ID="txtName" runat="server" ClientIDMode="Static"></asp:TextBox>

<asp:RequiredFieldValidator ID="reqValName" ControlToValidate="txtName" runat="server"
    CssClass="validation" ErrorMessage="*Required">
</asp:RequiredFieldValidator>

然后 ASP.NET 4.0 为您生成以下 JavaScript:

var reqValName = document.all ? document.all["reqValName"] : document.getElementById("reqValName");
reqValName.controltovalidate = "txtName";
reqValName.errormessage = "*Required";
reqValName.enabled = "False";   // <---- HERE. Set to false on server side.
reqValName.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid";
reqValName.initialvalue = "";

如您所见,如果禁用验证器,则会生成 reqValName.enabled = "False";,但如果启用它,则不会显示该行。

因此您可以检查该变量的值以确定它是否启用。请注意,它的值是一个字符串值,您可能需要将检查 JavaScript 放在页面底部。事实上,将所有 JavaScript 放在页面底部无论如何都是一件好事 ( before closing body tag )。

仅供引用,如果您使用的是 ASP.NET 4.5,您可以更轻松地检查它,因为该属性已放入 span 元素的 data-val-enabled 属性中而不是 JavaScript 变量属性。查看在 ASP.NET 4.5 上生成的 HTML。

<span class="validation" id="reqValName" style="visibility: hidden;" data-val-initialvalue="" 
data-val-evaluationfunction="RequiredFieldValidatorEvaluateIsValid" data-val="true" data-val-enabled="False" 
data-val-errormessage="*Required" data-val-controltovalidate="txtName">

关于javascript - 有什么方法可以知道 .net 必填字段验证器是从 js 启用还是禁用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11077398/

相关文章:

javascript - 如果字段为空,则 Bootstrap 验证器滚动到第一个错误

javascript - 从 'current' Controller 访问 'root' 范围

javascript - 如何从另一个网站通过 Id 获取元素

c# - 将word 2010中富内容控件的内容转成html格式

c# - 无法验证 'RequiredFieldValidator' 引用的自定义控件

javascript - 使用RequiredFieldValidator和Watermark属性

javascript - 登录失败的客户端通知

javascript - 检查具有相同名称属性的元素是否存在 jQuery

c# - 检查空值的正确方法是什么?

c# - 简单更新查询不更新。没有异常(exception),没有错误。没什么