【发布时间】:2018-01-11 11:54:45
【问题描述】:
我正在制作一个管理输入面板。
管理员可以选择使用十六进制值(例如 #0000ff 或 #008000 等)创建自定义颜色。
现在,我在我的模型中使用它:
[Required(AllowEmptyStrings = false, ErrorMessage = "Please enter the color")]
public string Color { get; set; }
我如何验证以便管理员只能在此处输入十六进制值?
最重要的是,这真的有必要吗?听说浏览器倾向于忽略错误的十六进制代码Why does HTML think “chucknorris” is a color?
【问题讨论】:
-
您编写验证输入的 javascript。没有一种方法可以做到这一点。试试看,如果出现问题,edit 你的问题是添加一个 JavaScript/HTML/CSS sn-p 并详细说明它为什么不工作。
-
看到这个但注意它需要浏览器支持,并注意这只是客户端,它与验证服务器端没有任何关系:stackoverflow.com/questions/17414348/…
-
我不明白为什么有人会将这个问题投票为“太宽泛”。它与验证问题一样具体。
-
对于服务器端验证,您可以执行 TryParse 或使用 RegEx。关于如何做到这一点,有类似这样的现有答案:stackoverflow.com/a/25933687/1260204
-
另一个客户端选项只是
<input type="color">。当然,这只适用于兼容 HTML5 的浏览器,因此您需要一个后备方案,但这绝对是现代浏览器的最佳选择。
标签: c# asp.net-mvc colors hex