【发布时间】:2014-04-20 15:31:47
【问题描述】:
我们目前正在使用 ASP.NET MVC 4 制作一个项目。因为我正在使用 select2 插件,所以验证并不是那么容易。 jQuery 验证中所需项目的标准消息是“此字段是必需的!”。经过数小时的搜索,我找到了如何更改此消息。下面你可以看到我是如何改变它的,这是有效的(使用@Html.ValidationMessageFor(--property of my ViewModel--) 显示消息。这很奇怪,因为我无法显示实际的数据注释消息,但幸运的是 jQuery 消息。
$.validator.messages = {
required: "@Resources.Question_MinOnePol"
};
这可行,问题是我现在为每个必填字段收到相同的消息。我想根据 id 或类获得不同的自定义消息。
我不知道如何做到这一点......希望你能给我一些关于如何实现这一点的提示。
额外的:
使用 select2 的选择列表示例:
<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)
脚本使其成为 select2 列表:
jQuery('#polDrop').select2({
placeholder: "Selecteer een politicus...",
maximumSelectionSize: 5,
formatResult: format2,
formatSelection: format2,
escapeMarkup: function(m) {
return m;
}
});
我的 ViewModel 给感兴趣的人:
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; }
}
如果需要,我很乐意提供任何其他详细信息。
【问题讨论】:
标签: javascript jquery asp.net-mvc jquery-select2