1

Я читаю следующий пример link о отображении частичного представления во всплывающем меню. но я заметил, что внутри частичное представление автор использует следующий код в конце представления: -

$("form").removeData("validator"); 
    $("form").removeData("unobtrusiveValidation"); 
    $.validator.unobtrusive.parse("form"); 

так может кто-нибудь совет, что цель позади добавления этого кода?

ответ

4

Он удаляет подтверждение jQuery из формы. Вот ссылка на данные проверки.

var form = $(formSelector) 
    .removeData("validator") /* added by the raw jquery.validate plugin */ 
    .removeData("unobtrusiveValidation"); 
    /* added by the jquery unobtrusive plugin */ 

Чтобы быть специфическими для реализации в частичном, вы можете осуществить проверку с помощью метода, как этот

function ApplyValidation() { 
    $("form").removeData("validator"); 
    $("form").removeData("unobtrusiveValidation"); 
    $.validator.unobtrusive.parse("form"); 
} 
+0

, но почему мне нужно удалить проверку jquery из формы? можете ли вы принять участие? –

+1

это в основном удаление проверки и повторная проверка его, когда у вас есть динамический элемент, добавленный в форму. –

3

В ненавязчивой проверки, как только валидаторы были применены для документа, любой другой валидаторы динамического содержимого (частичные представления или элементы управления html, вызванные jquery) не будут применяться. Как только мы перезагрузим валидаторы, он свяжет правила, определенные внутри модели, с реализацией правил, предоставляемой библиотекой JQuery, поэтому проверка будет выполнена без проблем.

Другой вариант (вместо перезагрузки валидаторов) заключается в том, чтобы вводить новые правила, как показано на рисунке here.

Доступ к данным формы unobtrusiveValidation с использованием метода данных jquery ($(form).data('unobtrusiveValidation')) и доступ к коллекции правил и добавление новых атрибутов элементов.

+0

спасибо за ответ, поэтому эти строки кода в основном заставят проверку asp.net mvc, такую ​​как проверка на стороне клиента, работать внутри частичного представления? –

+1

Да, для работы внутри частичного просмотра, когда он загружается через AJAX. – ramiramilu