当前位置: 首页 > 知识库问答 >
问题:

电子邮件数据批注验证有效,但手机无效

百里泓
2023-03-14

我正在ASP中使用数据注释。NET MVC4项目对电子邮件和电话字段执行客户端验证。电子邮件正在客户端中成功验证,但手机没有-它允许我输入无效字符,并且只在提交表单时警告我(而不是在键入字符后立即警告我)

在模型中:

[Required(ErrorMessage = "Email is required")]
[DataType(DataType.EmailAddress)]
[EmailAddress]
[Display(Name = "Email")]
public string Email{ get; set; }

[Required(ErrorMessage = "Mobile is required")]
[DataType(DataType.PhoneNumber)]
[Phone]
[Display(Name = "Mobile number")]
public string Mobile { get; set; }

在视图中,我相信我包含了正确的脚本引用:

<script type="text/javascript" src="~/Scripts/jquery.validate.min.js" ></script
<script type="text/javascript" src="~/Scripts/jquery.validate.unobtrusive.min.js" ></script>

...并使用html助手(我使用TextBoxFor而不是EditorFor,因为我正在应用类属性,为了清楚起见,我在这里省略了这些属性)

@Html.LabelFor(model => model.Email)
@Html.ValidationMessageFor(model => model.Email)
@Html.TextBoxFor(model => model.Email, new { @type = "email" })       

@Html.LabelFor(model => model.Mobile)
@Html.ValidationMessageFor(model => model.Mobile)
@Html.TextBoxFor(model => model.Mobile, new { @type = "phone" }) 

我错过了什么?

共有3个答案

边银龙
2023-03-14

我认为问题是电话类型不受支持。请参阅w3schools的电话类型支持

云焱
2023-03-14

MVC 4有一个内置的EmailAddress显示模板,但没有PhoneNumber。您需要为[数据类型(数据类型.电话号码)]创建一个自定义显示模板。

添加以下文件(您可能需要创建子文件夹DisplayTemplates):
<代码>视图\共享\显示模板\电话号码。cshtml

@model System.String
@if (Model != null)
{
    @:@System.Text.RegularExpressions.Regex.Replace(@Model, "(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3")
}
裴威
2023-03-14
[Required(ErrorMessage = "Mobile is required")]
[RegularExpression(@"^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$", ErrorMessage = "Entered mobile format is not valid.")]
public string Mobile{get; set;}

它将匹配诸如:0123456789、012-345-6789、(012)-345-6789等数字。

 类似资料:
  • 我正在提示我的应用程序用户提供电子邮件凭据。 在用户插入电子邮件并通过后,我想验证该帐户。 我正在使用javax。邮政有没有办法验证帐户?只确保凭据确实有效——否则我想显示一个无效用户并传递消息。 也许是某种表演方式: 并在不发送任何内容的情况下检查身份验证异常。

  • 每当我在Firebase中使用电子邮件/密码身份验证提供程序时,提供程序都会在成功注册时发送一个无记名令牌,即使是。是否有一种开箱即用的方法将电子邮件/密码身份验证提供程序配置为在用户验证其电子邮件地址之前不发送无记名令牌(并返回403错误)? 请注意,我知道如何创建用户、登录用户、发送验证电子邮件等。。。使用firebase v9。x通过firebase/auth中的方法创建用户(使用Email

  • 我试图建立我的应用程序的电子邮件验证部分。因此,用户输入他们的电子邮件,点击提交,他们将收到一封带有一次性“令牌”或链接的电子邮件,允许他们访问实际的注册页面。我如何处理这个与django的新版本,因为 来自django的 来自django的 代码似乎不起作用? 实际错误是无法从django导入name six。乌提尔斯。我在其他答案中看到,获取错误无法从“django”导入名称“six”。使用D

  • 问题内容: 我有这个EditText定义: 注意,EditText具有使用电子邮件地址规范定义的inputType。Android是否内置任何可验证电子邮件地址输入类型的内容,还是都必须手动完成?它允许我输入无效数据,所以我对它的用途感到好奇。 谢谢。 问题答案: 在这里,通过输入电子邮件类型,您可以将电子邮件类型的键盘设置为“ @”和“。”。关键字将显示在键盘上。 更好的解决方案是通过以下功能比

  • 我是Firebase的菜鸟。我要求一种设置电子邮件验证的分步指南。 目前,我的应用程序使用基本电子邮件密码登录。我希望对用户进行验证,以便根据用户的电子邮件验证属性隐藏内容。我正在调用.sendEmailVerification(),它会发送到当前用户的电子邮件,但是,每当我单击电子邮件中的链接时,它都说该链接已过期或有人已使用它,这也不会更改属性。我怀疑这与api管理器有关。我目前已将我的网站托

  • 我有一张登记表,上面有姓名、电子邮件和密码。注册时,会向用户的电子邮件地址发送一个确认链接。但在发送链接之前,我需要验证电子邮件地址。我使用了: 它显示的任何电子邮件都有效,例如, 我从获得的电子邮件并将其存储在中。 我到底要怎么做才能让它成功?