2

是否可以在客户端添加带有远程验证的钩子方法?我想检查是否已经接收了一封电子邮件,如果是这样,我想在我的表单上添加一个按钮,该按钮将向用户显示该电子邮件地址。

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

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

这是我在模型中的代码

  <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 捕获验证事件并为其添加行为?

4

1 回答 1

3

我找到了解决方案

要添加一个事件,只需在您的 Javascript 中添加它

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

addValidationInvalidHandler 是我自己的 javascript 函数,每次我的表单无效时都会调用它

于 2013-03-29T09:40:58.230 回答