我會說,它是驗證您的輸入,然後繼承瀏覽器的自定義行爲。
您可以驗證你的領域或多或少具有以下屬性:
public class HexColorAttribute : ValidationAttribute
{
private string _errorMessage;
public HexColorAttribute(string errorMessage)
{
_errorMessage = errorMessage
}
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
var colorHexStr = (string)value;
var valid = Regex.IsMatch(colorHexStr, "#[0-9a-fA-F]{6}");
if(valid)
{
return ValidationResult.Success;
}
else
{
return new ValidationResult(_errorMessage)
}
}
然後:
[Required(AllowEmptyStrings = false, ErrorMessage = "Please enter the color")]
[HexColor("Color has to have format '#123456'")]
public string Color { get; set; }
據工作同樣要求attribiute。看看RequiredAttribute的source code。
你寫了驗證輸入的javascript。沒有辦法做到這一點。嘗試一下,如果出現問題,請編輯您的問題以添加JavaScript/HTML/CSS代碼片段,其中包含有關爲什麼它不起作用的詳細信息。 – Will
看到這一點,但注意它需要瀏覽器支持,並且注意這只是客戶端,它與驗證服務器端沒有任何關係:https://stackoverflow.com/questions/17414348/html-5-hex-string -for-pattern-attribute – AaronLS
您可以使用現有的基於JavaScript的控件和瀏覽器端驗證。 [有足夠的](https://www.google.com/search?q=javascript+color+picker+control)。 – Igor