必填字段验证在 JQuery Popup MVC 4 中不起作用
Required field validations not working in JQuery Popup MVC 4
我有 JQuery 个弹出窗口,我想对其进行必需的字段验证,为此我在模型中设置了必需的属性,还在视图中为它们设置了验证消息,但需要字段验证不适用于弹出窗口。必填字段验证在 JQuery 弹出窗口以外的表单上工作正常....请指导我应该如何解决这个问题...以下是我的代码。
型号
[Display(Name = "Material Code")]
[Required(ErrorMessage = "*")]
public string MaterialCode { get; set; }
查看
<li>
@Html.LabelFor(m => m.MaterialCode)
@Html.TextBoxFor(m => m.MaterialCode)
@Html.HiddenFor(m => m.MaterialCodeId)
</li>
下面是我打开 JQuery 弹出窗口的代码。
$('#btnAddCharge').on('click', function (event) {
event.preventDefault();
var actionURL = '@Url.Action("Edit", "Charges", new { Id = 0, @ticketId = @TicketId, UserId = UserId })';
$(dialogBox).dialog({
autoOpen: false,
resizable: false,
title: 'Edit',
modal: true,
show: "blind",
width: 'auto',
hide: "blind",
open: function (event, ui) {
$(this).load(actionURL, function (html) {
$('form', html).submit(function () {
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
success: function (res) {
if (res.success) {
$(dialogBox).dialog('close');
}
}
});
return false;
});
});
}
});
$(dialogBox).dialog('open');
});
最初加载页面时会解析验证器。添加动态内容时,您需要重新解析验证器。加载内容后修改您的脚本以包含以下行
$(this).load(actionURL, function (html) {
// Reparse the validator
var form = $('form');
form.data('validator', null);
$.validator.unobtrusive.parse(form);
$('form', html).submit(function () {
....
旁注:您显示的代码不包括 @Html.ValidationMessageFor(m => m.MaterialCode)
但我认为它包括在内。
我有 JQuery 个弹出窗口,我想对其进行必需的字段验证,为此我在模型中设置了必需的属性,还在视图中为它们设置了验证消息,但需要字段验证不适用于弹出窗口。必填字段验证在 JQuery 弹出窗口以外的表单上工作正常....请指导我应该如何解决这个问题...以下是我的代码。
型号
[Display(Name = "Material Code")]
[Required(ErrorMessage = "*")]
public string MaterialCode { get; set; }
查看
<li>
@Html.LabelFor(m => m.MaterialCode)
@Html.TextBoxFor(m => m.MaterialCode)
@Html.HiddenFor(m => m.MaterialCodeId)
</li>
下面是我打开 JQuery 弹出窗口的代码。
$('#btnAddCharge').on('click', function (event) {
event.preventDefault();
var actionURL = '@Url.Action("Edit", "Charges", new { Id = 0, @ticketId = @TicketId, UserId = UserId })';
$(dialogBox).dialog({
autoOpen: false,
resizable: false,
title: 'Edit',
modal: true,
show: "blind",
width: 'auto',
hide: "blind",
open: function (event, ui) {
$(this).load(actionURL, function (html) {
$('form', html).submit(function () {
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
success: function (res) {
if (res.success) {
$(dialogBox).dialog('close');
}
}
});
return false;
});
});
}
});
$(dialogBox).dialog('open');
});
最初加载页面时会解析验证器。添加动态内容时,您需要重新解析验证器。加载内容后修改您的脚本以包含以下行
$(this).load(actionURL, function (html) {
// Reparse the validator
var form = $('form');
form.data('validator', null);
$.validator.unobtrusive.parse(form);
$('form', html).submit(function () {
....
旁注:您显示的代码不包括 @Html.ValidationMessageFor(m => m.MaterialCode)
但我认为它包括在内。