2014-04-20 30 views
0

我們目前正在使用ASP.NET MVC 4製作一個項目。因爲我正在使用select2插件,驗證並不是那麼容易。 jQuery驗證中所需項目的標準消息是「此字段是必需的!」。經過數小時和數小時的搜索,我發現如何更改此消息。下面你可以看到我如何改變它,這是工作(消息得到顯示使用@Html.ValidationMessageFor(--property of my ViewModel--)。這是非常奇怪的工作,因爲我不能得到實際的數據註釋消息顯示,但jQuery消息確實很幸運jQuery驗證:根據類別設置更多必需的消息

$.validator.messages = { 
    required: "@Resources.Question_MinOnePol" 
}; 

這工作,問題是我現在得到每個必填字段相同的消息。我想基於ID或類可能得到不同的自定義消息。

我不知道如何做到這一點?希望你能給我提示如何做到這一點。

其他的:

使用選擇列表

例選擇2:

<select name="PoliticianIds" id="polDrop" multiple style="width: 700px" required class="select2pol required"> 
      @foreach (var par in ((List<Party>)ViewBag.Parties)) 
      { 
       <optgroup label="@par.Name (@par.FullName)"> 

        @foreach (var pol in ((List<Politician>)par.Politicians)) 
        { 
         @(ViewBag.CurrPol = pol) 
         <option value="@pol.UserId">@pol.FirstName @pol.LastName (@pol.Party.Name)</option> 
        } 

       </optgroup> 
      } 
     </select> 
     @Html.ValidationMessageFor(model => model.PoliticianIds) 

腳本,使之成爲選擇2列表:

jQuery('#polDrop').select2({ 
     placeholder: "Selecteer een politicus...", 
     maximumSelectionSize: 5, 
     formatResult: format2, 
     formatSelection: format2, 
     escapeMarkup: function(m) { 
      return m; 
     } 
    }); 

我的視圖模型對於任何有興趣:

public class CreateQuestionModel 
{ 
    public Question Question { get; set; } 
    [Required(ErrorMessageResourceType = typeof(Resources.Resources), ErrorMessageResourceName = "Question_MinOnePol")] 
    public List<int> PoliticianIds { get; set; } 
    public List<int> TopicIds { get; set; } 
} 

我會很高興在需要時提供任何額外的細節。

回答

0

找到了答案在下面的StackOverflow的線程:

jQuery validation: change default error message

對不起,以前沒發現呢!

我如何解決它:

$('#polDrop').rules("add", { 
     messages: { 
      required: "Politician is required!" 
     } 
    }); 

    $('#topDrop').rules("add", { 
     messages: { 
      required: "Topic is required!" 
     } 
    }); 

ID用我的jQuery的調用當然我<select> S的ID的!