ASP.Net MVC 3 validation on AjaxForm

橙三吉。 提交于 2020-01-13 05:56:08

问题


I have an ajax form on razor view engine. For validation i use dataanotation classes. Validation work fine when user submit the form, validation messages work fine. The problem is, validation wont work on keyup or blur events.

How can i activate validation without submit on ajaxform(ajax.beginform)

Here is my view code:

@using (Ajax.BeginForm(new AjaxOptions { InsertionMode = InsertionMode.Replace,       
        UpdateTargetId = "employeeDetail", HttpMethod = "Post", OnComplete = "Complete", 
        Confirm = "Confirm?" }))
{
    @Html.TextBoxFor(model => model.Email)
    @Html.ValidationMessageFor(model=>model.Email)
    <span style="float:right"><input type="submit" class="tableGenelButton" id="submitButton" value="Kaydet" /></span>
}

Model:

  [RequiredWithMessage]
  [Display(Name = "E-Mail")]
  public string Email { get; set; }

回答1:


Update:

Ok, apparently you're using Ajax.BeginForm which uses MicrosoftAjax in stead of jQuery (I didn't realize that before). This one needs some extra work to enable client side validation:

You need

<% Html.EnableClientValidation(); %> 

Somewhere in your page, and also links to MicrosoftAjax.js, MicrosoftMvcAjax.js and MicrosoftMvcValidation.js

Here's a link that might be interesting for you:

ASP.NET MVC Client Side Validation With Ajax.BeginForm


To enable client side validation for a custom validation attribute (I guess [RequiredWithMessage] is one of those), you have to implement the IClientValidatable interface.

Here is an article that explains how to do that:

The Complete Guide To Validation In ASP.NET MVC 3 - Part 2




回答2:


Assuming you have client side validation enabled, you will need to call .validate() in the relevant events:

$("#theFormToValidate input").blur(function(){
    $("#theFormToValidate").validate();
});

and

$("#theFormToValidate input").keyup(function(){
    $("#theFormToValidate").validate();
});


来源:https://stackoverflow.com/questions/5938684/asp-net-mvc-3-validation-on-ajaxform

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!