
[英]How to apply same Jquery required validation on more than one textfields
[英]jQuery validation: set more required messages based on class
我们目前正在使用ASP.NET MVC 4进行项目。由于我正在使用select2插件,因此验证并不是那么容易。 jQuery验证中必填项的标准消息是“此字段必填!”。 经过数小时的搜索,我发现了如何更改此消息。 在下面您可以看到我如何对其进行更改,这是有效的(使用@Html.ValidationMessageFor(--property of my ViewModel--)
显示消息。这很奇怪,因为我无法获得实际的数据注释消息显示,但jQuery消息确实很幸运。
$.validator.messages = {
required: "@Resources.Question_MinOnePol"
};
可行,问题是我现在对于每个必填字段都收到相同的消息。 我想根据id或class获得不同的自定义消息。
我不知道如何执行此操作...希望您能给我有关如何实现此操作的提示。
额外的:
使用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; }
}
如果需要,我将很乐意提供其他详细信息。
在以下StackOverflow线程中找到了答案:
对不起,以前没找到!
我如何解决的:
$('#polDrop').rules("add", {
messages: {
required: "Politician is required!"
}
});
$('#topDrop').rules("add", {
messages: {
required: "Topic is required!"
}
});
我在jQuery中调用的ID当然是我的<select>
的ID!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.