在MVC应用程序中,客户端验证适用于文本框但不适用于多行

时间:2013-09-02 16:30:17

标签: jquery asp.net-mvc validation

我为属性Note制作了一个数据注释,它正在实现IClientValidatable,以便获取为客户端验证生成的数据属性。

[StringLength(50, ErrorMessage = "Max 50 characters")]

[TextNumberCommaDotSpaceValidation(ErrorMessage = "Letters, numbers, ',', '.', only.")]

[DataType(DataType.MultilineText)]

public object Note { get; set; }

以下jquery用于不显眼的验证:

jQuery.validator.unobtrusive.adapters.addBool("textnumbercommadotspace");

jQuery.validator.addMethod("textnumbercommadotspace",
    function (val, element, other) {            

        var textnumbercommadotspacevalidationattributePattern = /^[a-öA-Ö0-9  .,]*$/

        return textnumbercommadotspacevalidationattributePattern.test($.trim(val));

    }
);

当我不使用[DataType(DataType.MultilineText)]注释时,验证工作正常。那就是验证应用于输入文本。

有谁知道如何使用MultilineText进行客户端验证?

验证已触发,但在与MultilineText一起使用时,界面中不会出现任何错误。

2 个答案:

答案 0 :(得分:0)

MultilineText的验证似乎现在有效,但仅在调用.valid()方法时才提交。

但是在使用文本框时没有像onchange那样出现错误,并且错误时MultilineText周围没有红色标记。

这个红色标记和验证是仅对文本框而不是对MultilineText进行更改吗?

答案 1 :(得分:0)

您需要将其添加到您的css文件

textarea.input-validation-error {
    border: 1px solid #e80c4d;
}