ненавязчивая проверка не работает с динамическим контентом

У меня проблемы с попыткой заставить ненавязчивую проверку jquery работать с частичным представлением, которое загружается динамически через вызов AJAX.

Я провел дни, пытаясь заставить этот код работать без удачи.

Вот вид:

@model MvcApplication2.Models.test

@using (Html.BeginForm())
{
 @Html.ValidationSummary(true);
 <div id="res"></div>
 <input id="submit" type="submit" value="submit" />
}

Частичный вид:

@model MvcApplication2.Models.test

@Html.TextAreaFor(m => m.MyProperty);
@Html.ValidationMessageFor(m => m.MyProperty);

<script type="text/javascript" >
  $.validator.unobtrusive.parse(document);
</script>

Модель:

  public class test
  {
    [Required(ErrorMessage= "required field")]
    public int MyProperty { get; set; }
  }

Контроллер:

    public ActionResult GetView()
    {
        return PartialView("Test");
    }

и, наконец, 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;
    }
});

Проверка не работает. Даже если я не заполняю информацию в текстовом поле, событие отправки показывает предупреждение («действительный»).

Однако, если вместо того, чтобы динамически загружать представление, я использую@Html.Partial("test", Model) чтобы визуализировать частичное представление в главном представлении (а я не делаю вызов AJAX), тогда проверка работает просто отлично.

Вероятно, это потому, что если я загружаю контент динамически, элементы управления еще не существуют в DOM. Но я звоню$.validator.unobtrusive.parse($("#res")); что должно быть достаточно, чтобы позволить валидатору о недавно загруженных элементах управления ...

Кто-нибудь может помочь?

Ответы на вопрос(7)

Ваш ответ на вопрос