问题标签 [unobtrusive-validation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2363 浏览

c# - 日期的自定义不显眼的日期验证器

也许这只是我的思维方式,但我很难理解你应该如何做自定义的不显眼的验证器。C# 部分很简单,但 jqueryui 适配器是我迷路的地方。

我一直在尝试制作一个验证器,它要求日期是过去一定的时间。我用它来验证年龄,以确保有人输入了过去 18 年的日期。

我最终决定让它成为一个远程验证器,这样验证在客户端和服务器端都使用相同的代码。尽管如此,我还是对 jquery 感兴趣以使其工作。

我希望数据注释扩展具有日期功能。

0 投票
7 回答
8539 浏览

asp.net-mvc-3 - 在 MVC3 中扩展不显眼的 javascript 以向 div 客户端添加样式的最佳方法

我正在使用 html5/Razor/MVC3,利用来自 Twitter 的 Bootstrap 模板。我希望表单验证看起来像他们记录的那样光滑(http://twitter.github.com/bootstrap/#forms)。因此,如果我们看一下用于帐户注册的标准样板 MVC3,标记将如下所示:

我想要做的是让容器 div 注入“错误”类,就像我在第一个输入中硬编码一样。(因此在进入页面时,该 div 将有一个“clearfix”类,但如果该输入块未通过验证,它会将其标记为“clearfix error”)。我想我将不得不更新 div 块以包含某种 id 并可能向 ValidationMessage 添加一个新的 data- 属性。扩展 ValidationMessageFor 助手没有问题。我只是不能 100% 确定扩展现有库的方法应该是什么。关于如何解决这个问题的任何建议?

TIA。

更新

我认为这种方法是合理的:

通过使用数据容器名称装饰我的验证消息,我可以定位容器 div。现在我只需要弄清楚如何拦截验证消息。

0 投票
4 回答
15056 浏览

asp.net-mvc - MVC3 验证 - 需要组中的一个

给定以下视图模型:

我希望创建一个自定义属性来验证至少一个可用属性是否为真。我设想能够将属性附加到属性并分配一个组名,如下所示:

我想在表单提交之前在客户端进行验证,因为表单中的值发生了变化,这就是为什么我更愿意尽可能避免使用类级属性的原因。

这将需要服务器端和客户端验证来定位具有作为自定义属性参数传入的相同组名值的所有属性。这可能吗?非常感谢任何指导。

0 投票
2 回答
1018 浏览

asp.net-mvc-3 - MVC3 - 在 JQuery UI 自动完成下拉菜单上触发不显眼的 JavaScript

我在 MVC3 应用程序中使用不显眼的验证。我有一个带有 [Required] 验证器的下拉列表。这是我的模型(简化):

这是我的观点(简化):

现在这一切都在工作,直到我将下拉列表放入 JQuery UI 组合框 jqueryui.com/demos/autocomplete/#combobox(参见最后一个参数)。

当我按下提交按钮并且没有选择任何内容时,验证会触发。有一件烦人的事情是行不通的。当一个错误被触发时,如果我通过在下拉列表中选择一些东西来纠正错误,然后标签出来,错误不会消失。当它是一个普通的选择框时,确实发生了这种情况。

<select>这可能与现在隐藏并被 JQuery 替换的事实有关<input>,但我不知道如何触发正确的 js 以删除错误消息。

任何帮助将不胜感激!

提前致谢

0 投票
1 回答
2210 浏览

asp.net-mvc - 为什么在这种情况下 ASP.NET MVC 3 不启用客户端验证?

根据Brad Wilson 的食谱,我正在尝试在我的 ASP.NET MVC 3 项目中集成不显眼的客户端验证。但是,它不会在渲染视图中启用。例如,我的<input>元素(即编辑器字段)没有收到data-val规定的属性。

我已执行以下操作以启用不显眼的客户端验证:

Web.config

Options.cs

_Layout.cshtml

Options.cshtml

为编辑器字段生成此 HTML:

如您所见,没有data-val属性:(

0 投票
3 回答
897 浏览

asp.net-mvc - 在这个 ASP.NET MVC 3 应用程序中,我缺少什么来获得不显眼的客户端验证?

我需要帮助来弄清楚如何在我的 ASP.NET MVC 3 应用程序中成功实现对字段的不显眼的客户端验证。我可以看到基本上启用了不显眼的客户端验证,因为 MVC 生成相关的 HTML。

在这种情况下,我想要实现的是在我输入时验证Bugs编辑器的输入(即相应的<input>元素),出于测试目的,我将属性的最大长度设置为 2。当我测试时,我可以告诉目前没有进行验证,所以至少缺少一些东西。因此,此问题的成功标准是对表单字段进行客户端验证Bugs

我可以在生成的 HTML 中看到一个可能的问题:该Verbose属性标记为Required模型中的属性,但其对应<input>的仍然获取dataval=true例如属性,<input>forBugs没有。不应该反过来,因为具有验证规则的字段应该得到dataval=true,以启用不显眼的验证?

与理解案例相关的代码如下,如果需要更多信息,请告诉我:

Options.cs

Options.cshtml

两个编辑器(forBugsVerbose)呈现如下:

0 投票
1 回答
1961 浏览

asp.net-mvc-3 - 如何确定为什么不显眼的验证不起作用

有没有办法追踪为什么不显眼的验证不起作用?

我已经禁用了我所有的自定义验证器,并且只使用了 MVC 验证器,当我单击提交时它仍然发回服务器进行验证。

它快把我逼疯了。我唯一能想到的是我有一个隐藏的输入,除了[HiddenInput(DisplayValue = false)].

是否有一个特定的 javascript 函数我可以在其中放置一个断点来确定哪个字段导致表单提交?

编辑:

我只是意识到只有 IE8 导致服务器端验证。IE9、FF 和 Chrome 都很好。

编辑2:

好的,一定是缓存问题或其他问题。在某个时候,它又开始工作了,即使在恢复一切之后它仍然可以工作。

学过的知识。当你遇到愚蠢的问题时,总是清除你的缓存。

0 投票
1 回答
166 浏览

asp.net-mvc-3 - 如何 [AllowHtml] 但拒绝任何脚本?

在 asp.net mvc 中发布我需要[AllowHtml]在属性和Validate(input)控制器上设置的任何 html,但是如何允许发布 html拒绝发布任何脚本?

0 投票
5 回答
26121 浏览

jquery - 在文本框上手动设置不显眼的验证错误

我正在做类似于远程验证的事情,除了我已经通过 jquery 手动拨打电话并设置了我必须设置的任何内容。

现在我的问题是,如果我想告诉验证器某个特定的文本框无效(并阻止页面提交,突出显示文本框等)。我将如何从代码中做到这一点?

0 投票
2 回答
898 浏览

asp.net-mvc-3 - 验证其他字段而不导致无限循环

我有一种情况,我正在创建一个不显眼的验证器,该验证器必须验证仅当验证的字段不为空时才需要另一个字段(反之亦然)。问题是在某些极端情况下,其他字段不会重新验证,我想强制它重新验证自己而不会导致无限循环。

我的验证方法如下所示:

params 是我的另一个字段(都是文本框)。如果两者都为空,则通过,如果两者都有值,则通过。仅当只有一个值时才会失败。

这很好用,除非如果一个字段为空,而另一个字段有值,那么您从具有值的字段中删除该值,空字段不会重新验证(因为它的值没有更改)。

我试过这样做:

但这会导致无限循环,因为每次它通过时,它都会调用另一个。

如何在不调用原始字段的情况下使其他字段验证?