如何让 KendoUI Validator 忽略隐藏的表单元素?

2024-01-14

我正在尝试将 KendoUI Validator 与 ASP.NET WebForms 项目一起使用。 我有一个简单的页面,有许多输入,当然 ASP.NET 也添加了一些隐藏的表单元素。

我有以下问题:

  1. 为什么 KendoUI 验证器不忽略隐藏的表单字段,以及如何获取它?
  2. 为什么 KendoUI 将规则应用于每个输入字段,以及如何让它忽略某些字段。我想要一种声明性的方式来执行此操作,而不是按照 KendoUI Validator API 页面中的示例在验证规则中添加各种异常。
  3. 如果没有将规则设置为输入元素中的属性(例如必需),那么不应该应用任何验证吗?

我得到的行为:

  • 由于输入元素上根本没有验证特定属性,因此当我调用 .validate() 时,验证规则仍然会应用
  • 隐藏的表单元素经过验证。

我正在使用以下剑道:

http://cdn.kendostatic.com/2013.2.716/js/jquery.min.js
http://cdn.kendostatic.com/2013.2.716/js/kendo.all.min.js
http://cdn.kendostatic.com/2013.2.716/styles/kendo.common.min.css
http://cdn.kendostatic.com/2013.2.716/styles/kendo.default.min.css

我整理了一个小提琴来证明这一点:http://jsfiddle.net/codeowl/B5ML4/3/ http://jsfiddle.net/codeowl/B5ML4/3/

对于那些无法使用小提琴的人来说,这是代码:

我有以下标记:

<form action="/" id="testForm">
    <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
    <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />

    <input type="text" id="testInput" value="">
    <a id="testValidate" href="javascript:;">Validate</a>
</form>

和以下脚本:

var validatable = $("#testForm").kendoValidator({
    rules: {
        testRule1: function (input) {
            // Only "Tom" will be a valid value for the FirstName input
            return input.is("[name=firstname]") && input.val() === "Tom";
        },
        testRule2: function (input) {
            return $.trim(input.val()) !== "";
        }
    },
    messages: {
        testRule1: "Your name must be Test",
        testRule2: "Your name must be Foo"
    }
}).data("kendoValidator");

$("#testValidate").click(function () {
    if (validatable.validate()) {
        alert('passed');
    }
});

当我按下验证链接时,它会显示隐藏字段的验证消息。


对于任何感兴趣的人,我最终确实得到了这个问题的答复。我必须将其发布到 KendoUI 高级论坛上才能有人回复。

这是回应:如何让 KendoUI Validator 忽略隐藏的表单元素? http://www.kendoui.com/forums/kendo-ui-framework/validation/how-do-i-get-kendoui-validator-to-ignore-hidden-form-elements.aspx

事实上,隐藏的输入元素通过了验证 由于存在多个小部件,因此默认规则逻辑 它有一个隐藏的输入作为标记的一部分。然而,作为 内置规则依赖于某些属性的存在(如果存在) 缺少隐藏输入时不会进行验证。所以, 您自己的自定义规则应该处理这种情况并跳过 适当的元素。例如:

testRule2: function (input) {
    if (!input.is(":hidden")) {
        return $.trim(input.val()) !== "";
    }
    return true;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何让 KendoUI Validator 忽略隐藏的表单元素? 的相关文章

随机推荐

  • 函数 mcrypt_get_iv_size() 在 Laravel 4 上已弃用

    我在 L4 这是我的 app php
  • 一起编写 ModbusClient 和 ModbusServer 时出现问题

    关于本准则 我在用EasyModbus Nuget在 C 窗口窗体应用程序中 我正在尝试使用 RTU 实时更新 获取更改后的保持寄存器的地址值ModbusServer 下面的代码连接到服务器 void Connect ModbusClien
  • 为什么 CLOCKS_PER_SEC 不是每秒的实际时钟数?

    我刚刚编写了这个简短的 C 程序来近似每秒的实际时钟滴答数 include
  • 如何从react-firebase获取有效令牌以进行节点js服务器验证

    我有一个reactJS Web应用程序 我正在使用react redux firebase进行身份验证 并且它工作正常 现在我想添加一个自己的nodejs服务器 后面有一个小数据库 我读到我可以使用react webapp登录中的fireb
  • 有没有办法在 Puppeteer for Firefox 中使用代理?

    有没有办法将 Puppeteer 配置为在 Firefox 中使用代理 而无需手动调整操作系统的代理设置 我可以通过使用命令行参数在 Chrome 中完成此操作args proxy server http 0 0 0 0 0000 但是Fi
  • 使用 C# Web api 和备用内容类型

    我是 web api 的新手 我需要为客户端创建一个服务器 我无法控制客户 无法改变任何事情 客户端在 POST 正文中发送 html 封装的 json 请求 但是 内容类型可能会有所不同 我需要做什么才能让我的 ApiController
  • 单击按钮时如何播放 Web URL 中的声音文件

    我有这个声音文件http www example com sound mp3 如何使用媒体播放器在单击按钮时播放它 Example b setOnClickListener new View OnClickListener Override
  • 随机数的分布

    我有两个代码选项 Option 1 int myFunc return new Random nextInt Or Option 2 private static final Random random new Random int myF
  • 如何在用户控件可见后调用方法

    我用 C 创建了一个带有两个用户控件的 Windows 应用程序 当表单加载时 第一个用户控件被加载 并显示 当我单击 下一步 时 我加载第二个用户控件 现在 我希望在用户控件可见时调用该用户控件的方法 我做不到 如果我从 Load 事件调
  • 如何从二维数组构建图表?

    我正在尝试学习图结构和算法 从概念上讲 我理解 DFS BFS 并且我可以通过提供图来实现它们 但是图传统上是如何组成的 通常 我将它们视为以边为指针的节点列表 具有它们连接的节点的边列表或二维矩阵 其中两个 arr node a node
  • Windows 7 上的 .NET 源调试

    我们正在尝试通过调试SQL Server 紧凑型 http en wikipedia org wiki SQL Server Compact运行 Windows 7 Enterprise RTM 64 位 桌面上的问题 NET http e
  • 安装时如何检查我的产品是否已安装?

    我想在导入步骤中执行部分代码 前提是产品本身尚未安装 我尝试使用快速安装工具的 listInstalledProduct 方法 但是 这将返回所有已安装的产品 但不会返回我自己的产品 如何检查我的产品是否已安装在网站中 在 Anne Wal
  • 在 C# 中使用 Linq 中的内部查询创建列表

    我正在尝试使用 Linq 创建一个子列表 但不明白其中的错误 我不认为我做错了 但我认为其他人的眼睛会帮助我解决这个问题 var dataList File ReadAllLines inputFile dataList from line
  • Docker Swarm 无法与自定义覆盖网络上的其他节点通信

    我的集群中有4个节点 其中两个在香港 其他在美国 我在群中创建了 4 个服务 Service Location foo USA bar HK haha USA hehe HK 这些服务使用相同的覆盖网络 当我尝试时ping foo or p
  • 计算两个矩形之间的重叠面积

    我想计算红色和蓝色矩形之间的重叠区域 灰色区域 每个矩形由其四个角坐标定义 重叠面积的结果单位是单位正方形 我无法想象我该怎么做 任何有创意的评论将不胜感激 这种类型的交集很容易通过 最大值的最小值 和 最小值的最大值 的想法来完成 为了将
  • 将 byte[] 转换为数据 URI 的 Base64 字符串

    我知道这个问题可能已经被问过 10000 次了 但是 我似乎找不到这个问题的直接答案 我的数据库中存储了一个代表图像的 LOB 我从数据库获取该图像 我想通过 HTML IMG 标签将其显示在网页上 这不是我的首选解决方案 但在我找到更好的
  • 如何为具有动态应用程序 ID 的应用程序指定外部路径

    我在我的应用程序中使用 FileProvider 当我从应用程序中拍摄照片时存储在那里 我的应用程序也有一个不同的应用程序 ID 用于调试和发布版本 com rkmax myapp com rkmax myapp debug 我已经像这样定
  • @SpringBootTest 干扰 EclipseLink 动态编织

    我的公司正在使用 Spring Boot Spring MVC JPA 以及 EclipseLink 和动态编织来开发 Web 应用程序 我的任务是准备 UI 的实现和集成测试 使用 JUnit 和 SpringBootTest 启动应用程
  • 为什么 TimeZone.getTimeZone("MST") 方法与 getTimeZone("US/Mountain") 不同?

    TimeZone getTimeZone US Mountain and TimeZone getTimeZone MST 返回不同的结果 这个java类中的MST不代表 山区标准时间 吗 您不应使用简短的三个字母名称 MST 在Java中
  • 如何让 KendoUI Validator 忽略隐藏的表单元素?

    我正在尝试将 KendoUI Validator 与 ASP NET WebForms 项目一起使用 我有一个简单的页面 有许多输入 当然 ASP NET 也添加了一些隐藏的表单元素 我有以下问题 为什么 KendoUI 验证器不忽略隐藏的