【问题标题】:How to mask characters entered in a text input without failing model validation?如何在不失败模型验证的情况下屏蔽文本输入中输入的字符?
【发布时间】:2016-05-06 17:41:59
【问题描述】:

如何在不使用@Html.PasswordFor 的情况下模拟密码字段的行为。换句话说,我想将其保留为文本字段 (@Html.EditorFor),但显示一个掩码字符 (*) 而不是键入的字符。我不想使用密码字段的原因是因为这实际上不是用于密码,而是用于其他一些敏感数据,并且使用密码字段意味着 Chrome 会提示用户保存密码。

我知道我可以使用 javascript 使用 onkeyup 将键入的字符转换为掩码字符并将实际字符保存在隐藏字段中,但问题是该字段上的模型验证会拒绝该字符。

解决这个问题的最佳方法是什么?

查看

 @Html.EditorFor(model => model.Salary)

型号

[RegularExpression("([1-9][0-9]*)")] //model validation would reject asterisks.
public string Salary { get; set; }

【问题讨论】:

  • 你试过吗?
  • @Blue,是的,如问题第一行所述。 Html.PasswordFor 基本上是
  • 您可以尝试将其设为文本输入并使用 css 将字体语言更改为看起来像密码。这取决于你有哪些字体可用,但比 js 更易于维护/响应。检查此线程stackoverflow.com/questions/6859727/…
  • @Blue,好的,我想这就是我想要的。

标签: javascript asp.net-mvc html asp.net-mvc-4 razor


【解决方案1】:

使用 autocomplete="off" 的密码字段。

请参阅 Chrome Browser Ignoring AutoComplete=OffDisable browser 'Save Password' functionality

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多