【问题标题】:MVC3 customising validation message in viewMVC3 在视图中自定义验证消息
【发布时间】:2013-09-16 14:08:49
【问题描述】:

我认为这是一个非常简单的问题,由于某种原因我想不出该怎么做!

我有以下看法:

 <li>
                        <label>Job Title</label>
                        <%= Html.TextBox("JobTitle",Model.Person.JobTitle, new { type = "text", required = "required", placeholder = "Required" } ) %>
                        <%= Html.ValidationMessage("JobTitle","") %>
                    </li>

如果未填写该字段,则提交时会弹出“请填写此字段”。

我想将此消息自定义为“请输入您的职位”

我想我只需要将 Person.cs 更改为:

    /// <summary>
    /// JobTitle
    /// </summary>
    [Required(ErrorMessage = "Please enter your Job Title")]
    [StringLength(128, ErrorMessage = "JoBTitle maximum length is 128")]
    public String JobTitle { get; set; }

但我一辈子都想不出该怎么办对不起!

【问题讨论】:

标签: asp.net-mvc-3 validation


【解决方案1】:

好的,不确定这是否是最好的方法 - 可能不是!但这很有效......

<script type="text/javascript">
    //<![CDATA[
    $(document).ready(function () {
        var elements = document.getElementsByTagName("INPUT");
        for (var i = 0; i < elements.length; i++) {
            elements[i].oninvalid = function (e) {
                var currentId = $(this).attr('id');
                e.target.setCustomValidity("");
                if (!e.target.validity.valid) {
                    if (currentId == "JobTitle") {
                        e.target.setCustomValidity("Please enter your Job Title");
                    }
                    if (currentId == "FirstName") {
                        e.target.setCustomValidity("Please enter your First Name");
                    }
                }
            };
            elements[i].oninput = function (e) {
                e.target.setCustomValidity("");
            };
        }
    })
    //]]>
</script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-21
    • 1970-01-01
    • 2012-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多