Проверка jQuery не повторно инициализируется, когда я перестраиваю свою форму с помощью ajax call [duplicate]

$array[9] = 'Apple';
$array[12] = 'Orange';
$array[5] = 'Peach';

$array = array_values($array);

через эту функцию вы можете сбросить свой массив

$array[0] = 'Apple';
$array[1] = 'Orange';
$array[2] = 'Peach';
8
задан Stephen Muecke 2 August 2015 в 06:08
поделиться

1 ответ

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

$(this).load(actionURL, function (html) {
    // Reparse the validator
    var form = $('form');
    form.data('validator', null);
    $.validator.unobtrusive.parse(form);
    $('form', html).submit(function () {
        ....

Боковое примечание: код, который вы показали, не включает @Html.ValidationMessageFor(m => m.MaterialCode), но я предполагаю, что это включено.

16
ответ дан Stephen Muecke 21 August 2018 в 23:45
поделиться
  • 1
    Большое спасибо, Стивен Мюекке, он решил мою проблему – ARC 2 August 2015 в 06:16
  • 2
    В чем разница между этим кодом JS и этим? [Д0] stackoverflow.com/questions/7839453/… – markzzz 23 July 2018 в 07:16
  • 3
    @markzzz, $("form").removeData("validator"); по существу совпадает с form.data('validator', null); в этом контексте. Первый удаляет ранее добавленный валидатор, используя .removeData () , где, когда второй устанавливает его на null, используя .data () . $("form").removeData("unobtrusiveValidation"); в другом ответе не является действительно необходимым, потому что $.validator.unobtrusive.parse(form); эффективно сбрасывает это в любом случае. (и это напоминает мне. Я собираюсь добавить ответ по одному из ваших вопросов из нескольких дней назад :) – Stephen Muecke 23 July 2018 в 10:50
Другие вопросы по тегам:

Похожие вопросы: