ASP.net MVC 3在JQuery模式弹出问题中不引人注意的客户端验证

mar*_*ker 1 jquery unobtrusive-validation asp.net-mvc-3

当我尝试在应用程序中实现ASP.net MVC 3 Unobtrusive Client Validations时,呈现的html不会生成由JQuery生成的span标记.

我只有以下渲染html,我使用JQuery模态弹出窗口作为我的部分视图的容器.

<input data-val="true" data-val-required="The City field is required." id="City" name="City" type="text" value="Seattle" />
Run Code Online (Sandbox Code Playgroud)

但是,当我使用不显眼的客户端验证而没有弹出JQuery Modal弹出时,它在同一个应用程序中正常工作如下.

<div class="editor-field">
  <input data-val="true" data-val-required="The City field is required." id="City" name="City" type="text" value="Seattle" />
  <span class="field-validation-valid" data-valmsg-for="City" data-valmsg-replace="true"></span>
</div>
Run Code Online (Sandbox Code Playgroud)

当我在JQuery Modal Popup中使用Unobtrusive Client验证时,是否需要实现任何功能?

JQuery Popup Code

 $(document).ready(function () {
        $('#actionPanelDialogs div').dialog({
            autoOpen: false,
            modal: true,
            width: 700,
            appendToBody: true
        });


        $('#actions a').click(function (event) {
            event.stopPropagation();
            event.preventDefault();
            var link = $(this);
            var action = link.attr('href');
            var dialogDivId = link.attr('rel');

            var dialogDiv = $('#' + dialogDivId);

            $.get(action, null, function (data) {
                dialogDiv.html(data);

                dialogDiv.dialog('open');                

            });
            return false;
        });
 });
Run Code Online (Sandbox Code Playgroud)

Jos*_*osh 8

您必须手动触发添加到DOM的任何新元素的解析.

jQuery.validator.unobtrusive.parse("#modalPopup"); 
Run Code Online (Sandbox Code Playgroud)

如果您使用的是jQuery UI

$( ".selector" ).dialog({
   open: function(event, ui) {
      jQuery.validator.unobtrusive.parse(ui);
   }
});
Run Code Online (Sandbox Code Playgroud)