ASP.NET MVC远程验证钩子方法

时间:2013-03-28 16:50:46

标签: jquery asp.net-mvc validation

是否可以通过远程验证在客户端添加钩子方法? 我想检查是否已收到电子邮件,如果确实如此,我想在表单上添加一个按钮,向用户显示该电子邮件地址。

注意我还会检查是否需要电子邮件和/或有效的电子邮件。该按钮应仅在电子邮件已存在于数据库中时显示。

(验证本身有效,我只想抓住事件并在我的视图中添加一个按钮)

这是我在模型中的代码

  <Remote("ValidateEmail", "User", additionalfields:="UserGuid,PersonGuid", ErrorMessageResourceType:=GetType(Resources.Messages), ErrorMessageResourceName:="UserErrorDuplicateEmail")>
    Public Property Email As String

我的javascript

function createValidationCheck() {
$("form input").change(function () {
    console.log("change")
    $("form").valid();
});


$("form").validate({
    invalidHandler: function (event, validator) {
        console.log("TESTING")
    }
})}

这是我观点的一部分

@Using (Ajax.BeginForm("SaveUserDetail", New AjaxOptions With {.HttpMethod = "Post",
                                                                .UpdateTargetId = "displayContainer",
                                                                .OnFailure = "PostFailure",
                                                                .OnSuccess = "fillDisplayContainer",
                                                               .OnComplete = "userDetailFinished"
                                                              }))


         @<div id="detailInformation">
            <h2>@Resources.Labels.UserDetails</h2>

              @Html.HiddenFor(Function(m) m.UserGuid)
               @Html.HiddenFor(Function(m) m.PersonGuid)

              <div class="label">
                @Html.LabelFor(Function(m) m.Email)

            </div>
            <div class="displayForCorrector">
                @Html.TextBoxFor(Function(m) m.Email)
                 @Html.ValidationMessageFor(Function(m) m.Email,Nothing,New With{.id ="ShowEmailList"})
            </div>

简而言之,我如何捕获验证事件并通过jquery添加行为?

1 个答案:

答案 0 :(得分:3)

我找到了解决方案

要添加活动,只需在Javascript

中添加
 $("form").bind('invalid-form.validate',addValidationInvalidHandler)

addValidationInvalidHandler是我自己的javascript函数,只要我的表单无效,就会调用它。

相关问题