gpt4 book ai didi

asp.net-mvc-3 - 如何获得不引人注目的验证以清除电子邮件输入所需的验证?

转载 作者:太空宇宙 更新时间:2023-11-04 15:30:31 25 4
gpt4 key购买 nike

我有一个用 ASP.Net MVC3 编写的移动应用程序(使用 JQuery 非侵入式验证)。作为其中的一部分,我正在收集用户的姓名和电子邮件信息。我的模型包括如下字段:

  [Required] public String Name {get; set;}
[Required] public String Email {get; set;}

在我看来,我有以下形式的输入元素:

@Html.EditorFor(m => m.Name);
@Html.EditorFor(m => m.Email, "Email");

其中字符串编辑器模板和电子邮件编辑器模板相同,除了电子邮件模板明确将类型属性设置为“电子邮件”。

当我最初在未输入任何数据的情况下提交表单时,我收到客户端验证,指出这两个字段都是必需的。当我开始在名称字段中键入时,验证警告立即消失。当我开始在电子邮件字段中输入时,验证仍然存在。

然后我可以点击提交,表单会正确提交,尽管“电子邮件字段是必需的”。验证消息仍然可见。

如果我修改电子邮件编辑器模板以设置 type="text"而不是 type="email",验证将按照我期望的方式清除(但移动用户不会获得电子邮件专用键盘)。

两个问题:(1) 为什么会这样? (2) 我怎样才能让它“正常”运行(即,当输入电子邮件时,“必需”验证消失)?

最佳答案

我认为您出现此行为是因为您使用的是旧版本的 jQuery 验证。该插件自 1.9.0 起处理 keyup、focus in 和 focus out 具有 HTML5 类型(包括电子邮件)的输入元素。 MVC3 应用程序的标准模板附带 jquery validate 1.8.0,但不会。

所以你的答案:

  1. jQuery 验证版本 < 1.9.0 不处理 keyup、focusin 和html 输入元素类型的 focusout 事件,例如 type=email

  2. 升级您的 jquery-validate.js - 1.9.0 或更高版本

关于asp.net-mvc-3 - 如何获得不引人注目的验证以清除电子邮件输入所需的验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14531960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com