为了账号安全,请及时绑定邮箱和手机立即绑定

JQuery弹出MVC 4中不起作用的必要字段验证

JQuery弹出MVC 4中不起作用的必要字段验证

婷婷同学_ 2019-07-01 10:46:24
JQuery弹出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弹出窗口的cod。$('#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');     });
查看完整描述

2 回答

?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

验证器在最初加载页面时被解析。添加动态内容时,需要对验证器进行修复。在加载内容后修改脚本以包括以下行

$(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)但我想这包括在内。


查看完整回答
反对 回复 2019-07-01
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

$("form").removeData("validator");本质上与form.data('validator', null);在这方面。第一种方法将删除先前添加的验证器。.emoveData()当第二把它设置到null使用.Data()..这个$("form").removeData("unobtrusiveValidation");在另一个答案中,实际上没有必要,因为$.validator.unobtrusive.parse(form);不管怎么说,这实际上是重新设置的。(这提醒我,我要对你几天前的一个问题补充一个答案:) 

查看完整回答
反对 回复 2019-07-01
  • 2 回答
  • 0 关注
  • 421 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信