【问题标题】:jQuery dialog partial form submit validationjQuery对话框部分表单提交验证
【发布时间】:2013-06-10 15:15:13
【问题描述】:

我有以下部分视图(我删除了一些格式只是为了在这个论坛上保持简单)。我的表单标签在父页面上,对话框上的项目是该表单的一部分。 这是一个强类型的局部视图。我已在模型中将密码和确认密码字段定义为 [必需]。

@Html.LabelFor(m => m.password)
<a href="#" onclick="openResetPasswordDialog();">Reset Password</a>

<div id="dialogResetPassword" title="Reset Password">
    <p>Reset password for user: @Model.userId</p>
        @Html.LabelFor(m => m.password)
        @Html.PasswordFor(m => m.password)
        @Html.ValidationMessageFor(m => m.password)
    <div class="rowEnd"></div>

    @Html.LabelFor(m => m.confirmPassword)
    @Html.PasswordFor(m => m.confirmPassword)
    @Html.ValidationMessageFor(m => m.confirmPassword)
    <div class="rowEnd"></div>
</div>

我有以下 javascript 用于初始化对话框:

function initializeResetPasswordDialog() {
    $(resetPasswordDialogId).dialog(
    {
        autoOpen: false,
        autoResize: true,
        buttons: {
            Ok: function () {
                if (!($('#userForm').valid())) {
                    return false;
                }
                //more code goes here ...
                closeResetPasswordDialog();
            },
            Cancel: function () {
                closeResetPasswordDialog();
            }
        }
    });
}

我的对话框初始化、打开和关闭都很好,但是当我尝试检查对话框中项目的有效性时,我总是得到“有效”。

我不想提交整个表单,而只是提交密码和确定按钮上的确认密码字段,并启动我的验证。有关如何执行此操作的任何建议?

【问题讨论】:

    标签: javascript jquery asp.net-mvc-3


    【解决方案1】:

    好的,所以我通过在 jQuery 对话框的 open 参数中添加以下函数来解决它:

            open: function () {
                $(this).parent().appendTo("#userForm");
            }
    

    我注意到在初始化 jQuery 对话框时,即使它在我的表单中,当 HTML 页面在浏览器中呈现时,对话框 div 也被移到了表单之外。要使验证生效,输入必须在表单中。

    我希望这篇文章也能帮助其他人!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-20
      • 2011-09-21
      • 1970-01-01
      相关资源
      最近更新 更多