首页 文章

使用Kendo-UI创建电子邮件输入

提问于
浏览
0

我的公司使用KendoUI和ASP.NET MVC作为输入表单 . 我们在大多数模型属性上都有数据注释,并且验证与Html Helpers一起正常工作 . 然而,一旦我们用Html.Kendo() . TextBoxFor替换了Html.TextBoxFor,输入都变成了默认的type = text而不是从数据注释中提取类型 .

我可以通过在每个KendoUI小部件的HtmlAttributes部分中包含type =“email”来强制创建电子邮件类型 . 但是,由于之前是自动的,看起来我们正在使用KendoUI小部件向后退 . 我错过了什么吗?我当前的数据注释如下:

[DataType(DataType.EmailAddress, ErrorMessage ="The email address is not valid")]

此外,如果我添加type = "email",当我没有正确的电子邮件时,会显示新的Kendo验证消息 . 对于任何其他验证都不会发生这种情况,这些验证出现在Html.ValidationMessageFor所在的位置 . 这个新的Kendo验证消息具有不同的样式,并直接在 <input/> 标记下显示为 <label> . 除了使用CSS隐藏此标签之外,还有另一种方法可以在添加类型时仅显示一条验证消息吗?

提前致谢!

1 回答

  • 0

    Kendo验证支持 Required StringLength Range RegularExpression 数据注释(http://docs.telerik.com/kendo-ui/aspnet-mvc/validation

    但是为了支持 [EmailAddress(...)] 注释,您可以使用此kendo自定义全局验证规则(就像我在我的项目中一样):

    kendo.ui.validator.rules.FixEmail = function (input) {
        var datavalemail = input.attr('data-val-email');
        if (datavalemail != null) input.attr('type', 'email').attr('data-email-msg', datavalemail);
        return true;
    }
    

    与隐藏kendo验证工具提示相同我正在使用此全局css规则:

    .k-tooltip-validation {
        display: none !important;
    }
    

相关问题