如何在不通过模型验证的情况下屏蔽文本输入中输入的字符

How to mask characters entered in a text input without failing model validation?

本文关键字:输入 情况下 屏蔽 文本 字符 验证 模型      更新时间:2023-09-26

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

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

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

查看

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

型号

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

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

请参阅Chrome浏览器忽略自动完成=关闭和禁用浏览器';保存密码';功能。