如何在验证事件上显示弹出窗口?

时间:2011-12-02 11:49:55

标签: jquery ajax asp.net-mvc-3 validation data-annotations

看起来我很难为我的问题找到一个好的解决方案。我们有一个MVC 3应用程序和一个表单,我们使用Data Annotations进行验证。在电子邮件字段中,我有一个RemoteAttribute来检查,Email是unque。 我需要实现这个:

  1. 如果电子邮件是唯一的 - 一切正常,我们就不会做任何事情。

  2. 如果电子邮件不是unque - 我们需要显示一个带有yes \ no选项的模态弹出窗口。如果用户 选择“是” - 该字段有效,如果“否” - 字段无效,我们需要显示弹出消息。

  3. 不幸的是,我找不到任何好的解决方案

    小更新:我不想验证整个表单:只有电子邮件字段。在这种情况下,无法真正理解如何使用form.Validate from jQuery或ValidationSummary

2 个答案:

答案 0 :(得分:3)

试试这个:

在您的视图中,为ModelState创建错误容器:

<div id="errorPopUp" style="display:none">
    @Html.ValidationSummary()
</div>

并在您的视图的脚本部分中:

$(document).ready(function () {
    if(@:!ModelState.IsValid) {
            $('#errorPopUp').dialog({
                resizable: false,
                width: 400,
                modal: true,
                autoOpen: true
            });
        }
    }
}

答案 1 :(得分:1)

您可以使用jquery validate来执行此操作:

            var frm = $('#formData');

            frm.validate();
            if (frm.valid()) {
            // do nth or submit the form
            }
            else{
                 // Declare a dialog
                 var $dialog = $('#dialogdiv').dialog({
                     autoOpen: false,
                     modal: true
                 });
                 // Declare the yes/no options
                 ....
           }

这是你需要的东西吗?

希望这有帮助:)