是否可以通过远程验证在客户端添加钩子方法? 我想检查是否已收到电子邮件,如果确实如此,我想在表单上添加一个按钮,向用户显示该电子邮件地址。
注意我还会检查是否需要电子邮件和/或有效的电子邮件。该按钮应仅在电子邮件已存在于数据库中时显示。
(验证本身有效,我只想抓住事件并在我的视图中添加一个按钮)
这是我在模型中的代码
<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添加行为?
答案 0 :(得分:3)
我找到了解决方案
要添加活动,只需在Javascript
中添加 $("form").bind('invalid-form.validate',addValidationInvalidHandler)
addValidationInvalidHandler是我自己的javascript函数,只要我的表单无效,就会调用它。