我的下拉菜单上的淘汰验证不起作用

2023-12-01

我使用 durandal 模板+微风开发一个 ASP.NET MVC 项目。

我想在我的视图上定义验证逻辑以进行添加/编辑操作。

到目前为止,它适用于文本,从数据库填充的下拉列表:当元素不包含任何数据时,由于剔除验证,该元素被标记为红色。

但它不适用于从简单列表填充的下拉列表。

填充列表的元素来自枚举:

public class Transport
{
    [Key]
    int id { get; set; }
    ...
    [Required]
    public EnumCategory Category { get; set; }
}

public enum EnumCategory
{
    Cat1,
    Cat2,
    Cat3
}

第一个问题:我不知道是否可以从我的模型(服务器端)检索枚举以在客户端使用它?现在,我创建了一个数组客户端来填充我的下拉列表:

var categories = [
    { id: 1, description: "Cat1" },
    { id: 2, description: "Cat2" },
    { id: 3, description: "Cat3" }];

第二个问题:显示我的视图时,如果类别下拉列表已包含一些数据,则验证有效(我的意思是,如果用户清除下拉列表,则该字段将标记为红色)。但是,如果显示视图时类别下拉列表不包含任何数据,则下拉列表不会标记为红色。

当验证失败时,我所做的就是更改元素的背景颜色(如果无效)(感谢 css 'input-validation-error' >> 红色)。

<select data-bind="options: $root.categories,
                   optionsText: 'description',
                   optionsValue: 'id',
                   optionsCaption: 'Choose...',
                   value: category,
                   validationOptions: { errorElementClass: 'input-validation-error' },
                   valueUpdate: 'afterkeydown'">
</select>

有谁知道为什么我的下拉菜单验证不起作用?

Thanks.


我也偶然发现了这个,经过一番尝试和错误后,我发现了以下内容:

验证失败是因为 optionsCaption 使用 undefined 作为值。

您的模型显然使用 '' (在我的例子中它为空) 由于 null != undefined 它以某种方式全部崩溃了。

知道了这一点,解决办法有两种:

  1. 在模型上将值设置为未定义(在您的示例中transport.category(未定义))并像您习惯的那样使用optionsCaption
  2. 自己添加一个自定义的空 selectItem 并跳过 optionsCaption (您使用的解决方案)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我的下拉菜单上的淘汰验证不起作用 的相关文章

随机推荐

  • 对用德语 Fraktur 编写的 5800+ PDF 进行批量 OCR

    我想批量OCR约5800PDF 由我上一个问题中的每页 2 到 6 页组成here 在 Mac 上使用开源命令行工具 这次冒险的主要目的是我想从所有这些文本中检索尽可能可靠的名字 姓氏最重要 PDF Here是一个问题的示例 此时 我不知道
  • Nuxtjs Auth 模块无法在中间件中工作

    您好 我在 StackOverFlow 上发现了一个与我类似的老问题 但没有答案 nuxtjs auth axios 不发送 cookie 同样在 GitHub 上 没有有效的解决方案 https github com nuxt commu
  • 内存中的文件*(无磁盘访问)

    我们有接受 FILE CImg 的库 出于性能原因 我们希望处理内存中已有的数据而不访问磁盘 目标平台是 Windows 不幸的是它不支持 fmemopen 和 funopen char buf new char sz FILE fp fo
  • 在 Tomcat 7 中访问 Jersey 应用程序时出现 404

    我是 Web 开发领域的新手 我正在努力使用 jersey 创建一个简单的 Rest Web 服务 打包为独立的 war 文件 部署在 tomcat 7 上 我已经遵循了这个教程为了创建简单的 hello world 安静的 Web 服务
  • 我可以获得当前运行的java可执行文件的路径吗?

    假设我想从命令行运行一个java程序 我使用这个命令 myExes java java exe AJavaProgram 如您所见 java exe 不在我的路径中 因此我手动运行它 而不是简单地使用命令java AJavaProgram
  • 在 Windows 窗体控件中调整大小以及窗体大小调整

    我的 C Windows 窗体应用程序中有一些控件 组框 表格 gridview 等 我想根据屏幕宽度 高度缩放它们 例如 屏幕的起始分辨率为 640x480 然后最大化到 1920x1200 我希望能够增加控件的宽度 高度 以便在调整窗口
  • 将指针分配给使用 malloc 保留的块

    基于这个答案 https stackoverflow com a 19765782 1606345 include
  • 如何在iOS中注册一个在指定时间提醒应用程序的事件

    我需要每晚凌晨 1 点或每两周启动一次同步 我将如何在 iOS 中实现这一目标 iOS 中有没有一种方法可以让我的应用程序在此时提醒我 并且应该在指定的特定时间提醒我的应用程序 后台获取是操作系统提供的机会 iOS 7 及以上版本 到请求在
  • 为什么无法更改 css 中的内容?

    CSS2 1伪选择器如 after and before允许向页面添加文本内容 例如 CSS p after content Batman HTML p Na Na Na Na Na Na p 浏览器中的输出 Na Na Na Na Na
  • 了解 Cassandra 消息延迟指标

    我试图了解如何使用org apache cassandra metrics type Messaging公制 我设置了 3 个数据中心 每个数据中心 1 个节点 当我测量指标时 对于每个节点 我获得 2 个跨数据中心指标和 1 个跨节点延迟
  • 为什么主题函数没有将更改应用于 ggplot?

    我想更改 y 轴描述的文本大小并将绘图标题居中 主题函数中编码的所有内容都没有应用于我的图表 哪里有问题 finalchart ggplot euall aes day cumulative cases of 14 days per 100
  • 另一个针对 excel 2007 的优化宏 vba 代码。该代码是我的数据的一种转置器

    您好 这段代码最初不是由我完成的 这里有一些事情我不太明白 我已经对我的同事代码进行了一些修改以适应我的数据并且它有效 但太慢了 当我有 4000 kb 的 Excel 文件时 它可能会完全冻结 我已经检查过 当这个转置器运行时和之后 它仍
  • 如何使用curl 和 GraphQL updateIssueComment 突变更新 Github 中的问题或 PR 评论

    我想更新 Github PR 或问题中的评论 但我发现很难找到有效的示例 这就是为什么我问这个问题 我自己来回答 希望其他人可以使用这个 以下代码片段将使用 GraphQL 突变和curl 更新问题或 PR 评论 确保更换
  • C++ 模块到底是什么?

    我一直在跟踪 C 标准化并遇到了 C 模块的想法 我找不到关于它的好文章 到底是关于什么的 动机 简单的答案是 C 模块就像header那也是一个翻译单位 它就像一个标头 您可以使用它 与import 这是一个新的上下文关键字 来访问库中的
  • 如何从 ResourceDictionary 引用 BindingProxy 实例

    任何 wpf 程序员迟早都会开始使用绑定代理 我试图通过将一些资源移动到单独的资源字典中来拆分 xaml 我的问题是资源包含对BindingProxy 我该如何处理这种情况 举个例子 假设有一个资源BindingProxy这是在某处使用的
  • Blazor Editform 更改事件

    我希望在 blazor editform 中有一个 InputSelect 它绑定到模型值 并且还有一个 onchange 事件 该事件根据新值更改模型中的其他属性 绑定到 bind Value 和 onchange 不起作用 我猜测是因为
  • 使用 Alamofire 将嵌套数组从 JSON 数据显示到表视图

    我已经在表视图中显示了第一个 json 数据 但是当尝试显示内部数组数据的数组数据时 它在表视图上显示空白数据 我已经厌倦了很多方法 有时它显示索引超出范围 不知道我哪里出错了或者忘记编写代码 我可以在表视图中显示费用类数据 但无法显示描述
  • 在 Ansible 中添加带有循环的列表

    我正在尝试将新的隧道接口附加到空列表中 但出现以下错误 name empty list set fact list tunnel name create new list for tunnel set fact list tunnel ne
  • 加载具有相同静态链接函数的两个共享库时使用哪个函数

    我一直在阅读并试图理解符号是如何在 Linux 的共享库中解析的 所以这是我所面临的情况的描述 我正在使用一个应用程序 APP 可以加载用户创建的共享库以添加功能 我有两个这样的图书馆 LIB A so and LIB B so执行单独的事
  • 我的下拉菜单上的淘汰验证不起作用

    我使用 durandal 模板 微风开发一个 ASP NET MVC 项目 我想在我的视图上定义验证逻辑以进行添加 编辑操作 到目前为止 它适用于文本 从数据库填充的下拉列表 当元素不包含任何数据时 由于剔除验证 该元素被标记为红色 但它不