2013-09-16 65 views
1

我認爲這是一個非常簡單的問題,由於某種原因,我想不出如何去做!出現「請填寫在該領域」MVC3自定義驗證消息在視圖

<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; } 

但我可以T思考我的生活做什麼抱歉!

+0

這是http://stackoverflow.com/questions/5392882/chrome-popup-please-fill-out-this-field 使用formnovalidate屬性的副本。 – qub1n

回答

0

好吧不知道如果這是做這件事的最好方法 - 可能不是!但這個工程這麼...

<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>