【问题标题】:MVC Jquery Validation in Model Dialog Not Displaying Summary模型对话框中的 MVC Jquery 验证不显示摘要
【发布时间】:2014-06-26 11:02:52
【问题描述】:

我在加载部分视图并在对话框中显示它的函数中有以下 Jquery 代码:

ysjs.openCreateDialog = function() {
    $.ajax({
        url: '/yourthings/Create/',
        type: 'GET',
        success: function(result) {
            $('#create-modal').html(result).dialog({
                width: 700,
                resizable: false,
                modal: true,
                buttons: {
                    "Create": function () {
                        $("#create-usr").validate();
                        if (!$("#create-usr").valid()) {
                            return false;
                        }
                    },
                    Cancel: function() {
                        $(this).dialog("close");
                    }
                }
            }).dialog('open');
        },
    });
};

在我的部分视图中,我还强制 jquery 验证重新解析 DOM,如下所示:

<script type="text/javascript">
    $(function () {
        //allow the validation framework to re-prase the DOM
        jQuery.validator.unobtrusive.parse();
    });
</script>

当我单击 Create 按钮时,表单似乎正确无效,因为 return false 上的断点在 firebug 脚本视图中被击中。

网站上的所有其他验证功能完美,所以我没有丢失文件或设置来实际进行不显眼的验证工作,但在这种情况下显然存在一些问题,即从不显示摘要信息。

如果我将相同的部分直接放在页面上,所有验证都会按预期进行并在 UI 中显示消息。

我可以尝试什么来确保向用户显示验证消息?

【问题讨论】:

    标签: jquery asp.net-mvc validation


    【解决方案1】:

    我不确定这有多有趣,或者它是否是预期的行为,但我已经通过更改解决了这个问题:

    jQuery.validator.unobtrusive.parse();
    

    到:

    jQuery.validator.unobtrusive.parse('#create-usr');
    

    现在指定要解析的确切表单会在对话框的表单内正确显示验证摘要。

    【讨论】:

      猜你喜欢
      • 2017-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-15
      相关资源
      最近更新 更多