问题标签 [remote-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 回答
612 浏览

forms - 出现 MVC4 自定义远程验证器消息,但在表单提交时被忽略

我有一个使用两个自定义远程验证器的 MVC4 注册表单。第一个验证器检查电子邮件的唯一性,并正常工作。第二个检查凭证代码的使用次数。输入凭证代码后,它会正确显示一条消息,但在提交时无法接受自定义远程验证。

换句话说,您可以输入优惠券代码并看到来自远程验证器的“无法使用优惠券...”消息。但是您仍然可以提交表单。

这是表单的缩写标记,只有相关字段和提交按钮。完整的表格要大得多。本示例中保留了成功使用自定义验证的电子邮件字段以供比较。您可以在表单末尾附近看到 RegistrationVoucherCode 字段和验证器。

这是来自我的 ProfileModel 的相关代码。完整的模型要大得多,所以这里只给出相关代码。最后,您可以看到 RegistrationVoucherCode。

这些是来自我的 RegistrationController 的自定义验证器。同样,电子邮件地址验证器出现在此处以进行比较。我的问题是在提交表单时强制执行 ValidateVoucherCode 自定义验证器。

当输入过度使用的验证码时,消息“无法使用凭证,将超过凭证使用的最大数量”将成功显示在此 ValidationMessageFor 中的客户端上。这又来自表格。

关闭表单字段后,调试器显示此远程验证器被命中。

所以 ValidateVoucherCode 自定义验证器正在完成它的部分工作。当我关闭该字段时,它显示“无法使用凭证...”消息。但这并不妨碍表单被提交。相比之下,同一表单上的唯一电子邮件地址验证器将阻止表单提交。我需要 RegistrationVoucherCode 验证器以相同的方式操作。谢谢你的帮助。

0 投票
3 回答
1631 浏览

javascript - onClick 远程验证下拉字段

我在下拉字段上使用 JQuery 远程验证来检查所选字段是否已经存在。整体代码工作正常并正确验证。但问题是在 onChange 事件之后发送 ajax 调用的远程验证,这意味着它在单击页面上的任何位置后显示唯一键验证错误。

一旦用户点击下拉选项,我想验证它。我试过onclick:true了,但它不起作用。请检查我的代码:

谢谢。任何帮助,将不胜感激。

0 投票
6 回答
37087 浏览

c# - MVC 5 远程验证

在提交表单之前,我需要验证用户的输入字段值。

我在我的自定义控制器中创建了一个动作并用它装饰了该字段:

动作名称: CheckValue 控制器名称: Validate

问题是当我按下提交时,表单正在提交,Value is not valid如果用户输入的值无效,则会显示消息。

如何验证用户输入的值并在值无效时阻止提交表单并显示错误消息?

如果我尝试在 JavaScript 中检查返回 true 的表单是否有效$("#formId").valid(),这意味着无论值的状态是什么(有效与否),表单都是有效的。

另一方面,如果我用该[Required]属性装饰另一个字段,则不会提交表单,并且会为所需的字段显示错误。但是,远程验证字段的验证不会在后台进行。

0 投票
1 回答
2758 浏览

jquery - MVC 远程属性附加字段

jquery 远程验证将输入字段名称 (mymodel.field1) 的前缀添加到 data-val-remote-additionalfields 中列出的每个附加字段。在我的附加字段中,我有一个不属于模型的隐藏字段,因此它具有正常名称,例如“fieldhidden”而不是“mymodel.fieldhidden”。

我通过查看控制器上的请求对象确认了这一点,并验证了查询字符串键之一是“mymodel.fieldhidden”而不是“fieldhidden”,并且数据为空。很确定它为空,因为 jquery 验证正在寻找“mymodel.fieldhidden”,当然找不到它。

有没有办法通过 mvc 属性而不是自动前缀或通过 jquery 操作来制作 jquery 以不自动为附加字段添加前缀,其中 name 属性的值格式为“model.fieldname”,其中添加了远程验证?

0 投票
1 回答
2045 浏览

c# - ASP.net MVC 4 远程验证不起作用

我尝试在 EditorFor 中验证字符串。如果许可证不在我的数据库中,我想打印一个错误。

这是我的模型:

这是我的控制器(HLRController.cs)

还有我的观点:

我不知道我哪里出错了。我在这里和互联网的其他页面上看到了类似的代码-.-

如果我测试这段代码,什么都不会发生。好吧,没有什么是谎言。如果我在我的 EditFor 中写了一个许可证,什么也不会发生 - 但是 [Required] Vaidation 不起作用。如果该字段为空,他将写入 ErrorMessage 并将该字段框为红色。然后我输入了一些东西——红框消失了,但 ErrorMessage 仍然存在。

我想对此进行调试,并在我的“IsLicenseValid”方法中放置了一个断点——但他并没有就此止步。所以这种方法从未被使用过..(?!)

有人有想法吗?非常感谢!

0 投票
1 回答
508 浏览

c# - 在表单外单独显示ValidationMessageFor,使用远程验证

我遇到了一个问题,希望你能帮我解决。

我有一个包含多个字段的表单,其中很少有远程验证。

像这样的一段代码工作得很好,当 WorkPermitEnd 输入失去焦点时,远程验证完成,如果字段无效,消息会按预期显示在下表单元格中。

我的问题是,我需要更改它并将验证消息放在表单本身之外,在完全不同的部分。这就是我努力寻找合适解决方案的地方,因为当失去表单上下文时,

只是不起作用并且不显示输入的验证消息,即原始形式。所以我的问题是,有没有办法将验证消息传递到页面上的不同部分?

编辑:添加页面布局

0 投票
1 回答
1854 浏览

asp.net - ASP MVC 远程验证移除区域

我有以下模型:

我有一个创建用户表单,它是管理区域。所以它是“/Admin/User/Create”。

我的“ValidateIdNumber”操作位于控制器“CustomValidation”的根目录中,因此要访问它,您需要转到“/CustomValidation/ValidateIdNumber”

问题是当表单被创建时,远程验证的目标是“/Admin/CustomValidation/ValidateIdNumber”。

如何删除区域?我尝试将 Remote 属性中的 area 参数设为空字符串(“”)和 null。

有任何想法吗?我想尝试将我的验证保留在根目录而不是区域。

0 投票
1 回答
556 浏览

sql-server - 无法使用 [Remote] 数据注释属性验证现有电子邮件 ID

我想使用模型中的 [Remote] 数据注释来验证数据库中电子邮件 ID 的存在。但是当我调用远程 JsonResult Action 方法时,参数将为 null 并且结果将始终为 false 并且将显示错误消息。我的代码有什么问题?

模型 :

帐户控制器

0 投票
2 回答
275 浏览

c# - Remote validation never gets called in Create view but it does in Edit view

I have a form in a Create View, for some reason it does not submit and hence does not call the Create controller. If I use the exact same view but for the Edit controller it works perfectly and both Create and Edit controller methods take the same parameters and they have the same attributes and they have almost the same code so I have no clue why the form in the Create view doesn´t submit but the form in the Edit view does. I think it is an error in the JQuery client side validation but no error is displayed. I have tried everything but I'm out of ideas and I have no idea how to debug the JQuery Validation plugin to see in which field of the form it goes wrong and whether it prevents the form submit. What could make the form not submit?

This is the Create view which does not submit:

And the model for this view:

And the create controller. This doesn't get called. I think the form does not even submit so I doubt it the problem is here:

0 投票
0 回答
206 浏览

php - 如何更改 jQuery 验证的远程方法响应

我需要通过验证中的远程方法验证电话号码,但我得到的响应不是真/假,并且表单不验证。使用返回的参数后是否可以更改响应?

在这种形式中,响应被视为失败的自定义消息。在我保存 responseJSON 后,我需要将响应转换为 TRUE,以便我的表单可以验证。有任何想法吗?PS:来自php的响应可以是假的,也可以是数字。如果是数字,请验证表单。