I'm having problems trying to get the unobtrusive jquery validation to work with a partial view that is loaded dynamically through an AJAX call.
I've been spending days trying to get this code to work with no luck.
Here's the View:
@model MvcApplication2.Models.test
@using (Html.BeginForm())
{
 @Html.ValidationSummary(true);
 <div id="res"></div>
 <input id="submit" type="submit" value="submit" />
}
The Partial View:
@model MvcApplication2.Models.test
@Html.TextAreaFor(m => m.MyProperty);
@Html.ValidationMessageFor(m => m.MyProperty);
<script type="text/javascript" >
  $.validator.unobtrusive.parse(document);
</script>
The Model:
  public class test
  {
    [Required(ErrorMessage= "required field")]
    public int MyProperty { get; set; }
  }
The Controller:
    public ActionResult GetView()
    {
        return PartialView("Test");
    }
and finally, the javascript:
$(doument).ready(function () {
$.ajax({
    url: '/test/getview',
    success: function (res) {
        $("#res").html(res);
        $.validator.unobtrusive.parse($("#res"));
    }
});
$("#submit").click(function () {
    if ($("form").valid()) {
        alert('valid');
        return true;
    } else {
        alert('not valid');
        return false;
    }
});
The validation does not work. Even if I don't fill any information in the texbox, the submit event shows the alert ('valid').
However, if instead of loading dynamically the view, I use @Html.Partial("test", Model) to render the partial View in the main View (and I don't do the AJAX call), then the validation works just fine.
This is probably because if I load the content dynamically, the controls don't exist in the DOM yet. But I do a call to  $.validator.unobtrusive.parse($("#res"));  which should be enough to let the validator about the newly loaded controls...
Can anyone help ?
 
     
     
     
     
     
     
     
     
     
     
    