Knockout JS“uniqueName”绑定 - 两个字段同名

2023-12-13

我正在使用 Knockout JS 创建一个编辑器。我正在使用 foreach 属性循环模型中的列表。

 <tbody data-bind='foreach: Properties'>

我正在使用 JQuery 不显眼的验证,它需要一个 name 属性来验证。我想为两个字段分配相同的名称,以便能够输出验证消息。是否可以在两个字段上使用相同的 uniqueName 属性?

 <tr>
     <td>
         <input data-bind='value: type, uniqueName: true' data-val = "true", data-val-required = "The Type field is required"  /></td>
     </td>
 </tr>
 <tr>
     <td class="field-validation-valid" data-valmsg-for="UNIQUENAME" data-valmsg-replace="true"></td>
 </tr>

我复制了下面的示例,其中显示了网格编辑和 JQuery 不显眼的验证。但我无法弄清楚如何将验证消息与输入字段链接起来

http://knockoutjs.com/examples/gridEditor.html

Edit:

我使用 ASP.NET MVC3 和 Razor 语法作为循环输入。

 @Html.DropDownList("Type", new SelectList(types, "Value", "Text"), "Select", new { data_bind = "value: Type", data_val = "true", data_val_required = "The Type field is required" })

我不知道如何更新 name 属性。当我使用淘汰赛添加属性时,它们都具有相同的名称“Type“并且验证不起作用。它们需要以 Type1 Type2 等方式进行索引。


uniqueName 绑定仅增加索引并设置名称(修复了 IE)。

看起来像:

ko.bindingHandlers['uniqueName'] = {
    'init': function (element, valueAccessor) {
        if (valueAccessor()) {
            element.name = "ko_unique_" + (++ko.bindingHandlers['uniqueName'].currentIndex);

            // Workaround IE 6/7 issue
            // - https://github.com/SteveSanderson/knockout/issues/197
            // - http://www.matts411.com/post/setting_the_name_attribute_in_ie_dom/
            if (ko.utils.isIe6 || ko.utils.isIe7)
                element.mergeAttributes(document.createElement("<input name='" + element.name + "'/>"), false);
        }
    }
};

因此,您可以创建一个使用最后一个索引并设置适当属性的自定义绑定

ko.bindingHandlers.valmsg = {
    init: function(element) {
        element.setAttribute("data-valmsg-for", "ko_unique_" + ko.bindingHandlers.uniqueName.currentIndex);
    }
};

现在,您只需使用它即可:

<tr>
    <td>
         <input data-bind='value: type, uniqueName: true' data-val="true", data-val-required="The Type field is required"  />
    </td>
</tr>
<tr>
     <td class="field-validation-valid" data-bind="valmsg: true" data-valmsg-replace="true"></td>
</tr>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Knockout JS“uniqueName”绑定 - 两个字段同名 的相关文章

  • Knockout js 大量自定义绑定

    在绑定不存在的情况下 处理大量自定义绑定的好方法是什么 假设我的 html 表达式绑定到 image url 如下所示 span title Company Logo span 然而 image url 绑定很可能不可用 在这种情况下 我只
  • 将淘汰对象转换为纯 JavaScript 对象时出现无限循环

    遵循中给出的说明文档 http knockoutjs com documentation json data html 我有以下视图模型 var newContactViewModel function var self this self
  • 如何让 ko.compated 处理对象内的可观察值

    我有一个相当简单的视图模型来保存数据数组并获取一个我想用来过滤数据的字符串 我有一些非常简单的标记来渲染它 如下所示 section class task list ul li li ul section
  • 如何将复选框绑定到值的倒数?

    我有一个情况 当我需要将一个复选框和另一个 DOM 元素的可见性绑定到我的 viewModel 的布尔属性的逆时
  • Knockout:避免绑定中的循环更新

    我有一个与接口交互的自定义 绑定Scribe https github com guardian scribe 一个内容可编辑的所见即所得编辑器 当编辑器内容发生变化时 它会更新关联的可观察量 并在关联的可观察量发生变化时更新编辑器 ko
  • Knockout.js、映射插件和 moment.js - 格式化/映射 json 日期

    我将 Knockout js 与映射插件一起使用 我正在获取一些 json 数据并使用映射插件将其映射到我的 html 中 json 数据中是 json 格式的日期 我需要使用映射插件将其映射到 html 中 是否可以使用 moment j
  • 在 KnockoutJS 中更改模型数据时,Javascript 内存泄漏

    我们正在构建一个相当大的单页应用程序 使用 KnockoutJS 作为 数据处理程序 问题是 当更改模型数据时 垃圾收集器不会处理旧模型 看起来如此 该应用程序有大约 12 个不同的模型 其中包含计算的可观察量 您可以使用它们检索关系 在
  • 如何使用 URL 将数据从 javascript 发送到 ASP.NET MVC 控制器

    我需要一些帮助 我使用 ASP NET MVC4 以及 JavaScript 和 Knockout 编写了一个小应用程序 但我无法将数据从 javascript 发送到 MVC 控制器 反之亦然 例如JS部分是这样的 JavaScript
  • 对模板之一的 observableArray 进行排序

    我有以下视图模型 function instance id FirstName extend this id ko observable id FirstName ko observable FirstName 我在 observableA
  • knockoutjs通过点击事件获取元素id

    我正在使用 knockoutjs 目前我认为有些东西看起来像这样 img src images image1 png 这允许我获取视图模型中的元素 ID pressedTab function tab console log Element
  • 淘汰赛:自定义绑定处理程序上的 valueAccessor 与 viewModel?

    通过绑定属性 通过 valueAccessor 访问视图模型的值与从传递给处理程序的 init 和 update 的 viewModel 参数获取它们之间有什么区别 我一直认为答案是那些链接到 valueAccessor 的模型属性会自动设
  • 输入按键的淘汰赛事件绑定会导致奇怪的行为

    长话短说 我希望用户能够在输入元素上按 Enter 键 并调用我的视图模型中的某些方法 这是我的 html 输入
  • knockoutjs 在 foreach 绑定中单击绑定

    编辑 问题与绑定无关 而是与一个简单的 JavaScript 错误有关 我有一个关于 foreach 绑定中的单击绑定的问题 我有一个列表 其中的项目显示一个下拉框 用于从主数据中选择一个值 可以在该列表中添加和删除项目 用于删除项目的按钮
  • 使用 Durandal 的单个网页应用程序的全局变量

    我的应用程序具有三个 全局 内容 带有 lat 和 lng 值的用户位置 用户是否登录 以及他们选择的活动 将其视为一个类别 我希望在整个应用程序中使用这些值 每个屏幕都会使用该日期的某些集合 因此每页加载它并不是正确的答案 除非用户创建事
  • 淘汰赛应用程序的性能调整 - 改进响应时间的指南

    我有一个大型 复杂的页面 严重依赖于 Knockout js 性能开始成为一个问题 但检查调用堆栈并试图找到瓶颈是一个真正的挑战 我在另一个问题中注意到 Knockout js 理解 foreach 和 with https stackov
  • Breeze.js 查询不更新淘汰赛视图

    我正在通过 Breeze js 查询数据 第一次运行良好 第二次视图未更新 html a Order by Newest a a Order by Score a div ul li strong span span strong span
  • 淘汰foreach绑定无序列表

    首先 圣诞快乐 希望圣诞节那天没有其他人在工作 除非他们是出色的专家并且真的很想帮助我 我正在使用神话般的jQuery 列导航插件 http code google com p jquery column navigation 以多列方式向
  • 首选的客户端路由解决方案? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Knockout 验证 - 空时不验证输入 + 提交时评估

    检查这个小提琴 http jsfiddle net bhzrw01s http jsfiddle net bhzrw01s 我试图做两件事 第一 当字段为空时不要验证 我知道有一个 onlyif 选项 但是有更简单的吗 第二 当我点击提交时
  • 有没有办法使用 ko.observableArray 作为地图?

    有没有办法使用ko observableArray http knockoutjs com documentation observableArrays html像地图 字典一样 例如 var arr ko observableArray

随机推荐

  • Grails + GORM:GORM 中默认的 equals() 实现是什么?

    当我做domainObj1 domainObj2Grails 中的对象是按 ID 进行比较的吗 如果不是 它们如何比较 首先 您需要了解 GORM Grails 并没有做任何特别的事情equals 除非你自己实现equals 在您的域类上
  • 摇动动画(3d版)

    我想在错误上使用此动画 如图所示here 如何在wpf中实现这一点 我感觉这应该是多个转换的组合 组合 但是具体是哪些转换以及如何转换 这是一个初学者 mcve或称之为 我的尝试 它很丑陋 甚至与我想要的不接近
  • 将操作添加到操作栏面板

    我想向操作栏添加一个操作 但它在我的操作栏中显示为下拉列表 如何向操作栏添加按钮 我的代码是 menu menu
  • 为什么Python中的像素值会自动变化?

    我正在 VideoCapture 的帮助下从视频中提取帧 提取第一帧 借助 PIL 将帧转换为图像 打印位置 1 1 处的前一个像素值 打印新创建图像的位置 1 1 处的像素值 谁能解释为什么 提取帧的函数 import cv2 from
  • 使用 Dapper,如何将 sql 类型的值作为参数传递?

    我正在尝试使用 dapper 并将我在此处使用 DDL 定义的整数列表传递给存储过程 CREATE TYPE dbo BrandIDSet AS TABLE BrandID INT NULL 我创建了这个存储过程 CREATE PROCED
  • 如何使用 jQuery 从多个事件触发相同的函数?

    有没有办法拥有keyup keypress blur and change事件在一行中调用相同的函数 还是我必须单独执行它们 我遇到的问题是 我需要通过数据库查找来验证一些数据 并希望确保在任何情况下都不会错过验证 无论是键入还是粘贴到框中
  • 在 Python 中使用 SHA256withRSA 数字签名验证失败

    我正在尝试使用离线 aadhaar KYC 验证应用程序的给定证书文件来验证数字签名 该说明在验证文档中给出 读取整个 XML 并将 s xxxx 标记从中分离出来 使用基于 SHA256withRSA 的哈希和加密技术的签名验证算法 s
  • 将二进制文件添加到 Visual Studio 中的资源

    请这听起来可能是新手 但我就是无法让它工作 因为 在 Visual Studio 2012 中将文件 例如 file exe 添加到资源中的步骤是什么 以便我可以使用以下命令找到资源FindResource hInstance MAKEIN
  • 如何在 Json 控制器中渲染部分视图

    如何渲染要在控制器中的 JsonResult 中使用的部分视图 return Json new Html this RenderPartialView EditMovie updatedMovie Message message JsonR
  • 与 glfw3 链接时发生错误[重复]

    这个问题在这里已经有答案了 我最近一直在尝试编译C 代码并且不依赖IDE 我决定使用编辑器和命令行来编写和编译代码 问题是我想制作一个 glfw 应用程序 但是当我链接 glfw3 lib 和 opengl32 lib 时出现错误 a ex
  • 他们添加的 git 重命名冲突 - git 将重命名目录中的相同文件识别为新文件

    我已经重命名了一个目录并将其合并到我的主分支中 当合并另一个分支时 git 将重命名的目录中的相同文件识别为新文件 当合并到另一个分支时 我得到该目录中相同文件 由他们添加 的合并冲突 added by them theirDir same
  • 如何在每个测试的基础上更改模拟实现?

    我想通过扩展默认模拟的行为并在下一个测试执行时将其恢复到原始实现来更改每个测试基础上模拟依赖项的实现 更简单地说 这就是我想要实现的目标 模拟依赖 在单个测试中更改 扩展模拟实现 执行下一个测试时恢复到原始模拟 我目前正在使用 Jest v
  • 从源安装 R 包,无需更改 PATH (Windows)

    我正在尝试安装包rpart对于 Windows 7 上的 R 2 14 0 但我收到警告 包 rpart 不可用 对于 R 版本 2 14 0 所以我从包页面下载 tar gz 文件 我已经安装了 Rtools 但禁用了所有选项 包括更改
  • 什么是最好/非常好的元数据阅读器库?

    现在 我对从 MP3 文件 ID3 标签 读取数据特别感兴趣 但它能做的越多 例如图像中的 EXIF 就越好 而且不会影响 ID3 标签的读取能力 我有兴趣制作一个脚本来遍历我的媒体 现在是我的音乐文件 并确保文件名和目录路径与文件的元数据
  • F# 中什么是柯里化? [复制]

    这个问题已经存在了 可能的重复 函数式编程 柯里化 我正在这里阅读免费的 F Wikibook http en wikibooks org wiki F Sharp Programming 有一节解释了什么是偏函数 它说使用 F 你可以部分
  • Javascript 键码冲突:“右箭头”和“单引号”

    以下脚本执行其应该执行的操作 即它对 向左箭头 和 向右箭头 键做出反应 但是 由于键码冲突 它也会对单引号做出反应 它使得无法将该字符输入到输入字段中 对此可以采取什么措施吗
  • 使用Spring Batch在不同的数据源中写入

    对于一个项目 我需要处理一个表中的项目 并为 3 个不同的表生成 3 个不同的项目 所有 3 个项目都位于与第一个项目不同的第二个数据源中 该实施是通过 Oracle DB 使用 Spring Batch 完成的 我认为这question有
  • 矩阵和数组有什么区别?

    更广义的术语是什么 那么为什么 MATLAB 被命名为矩阵实验室呢 矩阵是表示维度空间线性变换的实用方法n到一个维度空间m以一个形式nxm标量值数组 以非常系统的方式进行线性代数运算也非常实用 可以在计算机上实现 例如如果矩阵A表示线性变换
  • 如何检测对 HTML5“下载”属性的支持?

    HTML5 中实现的新功能之一是download锚标记的属性 此属性的好处是 它为用户提供了下载在客户端应用程序中创建的内容的方法 例如图像 例如从画布转换而来 目前 对此功能的支持很差 所以我想知道如何检测浏览器中对此功能的支持 Use
  • Knockout JS“uniqueName”绑定 - 两个字段同名

    我正在使用 Knockout JS 创建一个编辑器 我正在使用 foreach 属性循环模型中的列表 tbody 我正在使用 JQuery 不显眼的验证 它需要一个 name 属性来验证 我想为两个字段分配相同的名称 以便能够输出验证消息