Диалоговое окно пользовательского интерфейса jQuery — сброс значения формы и проверки после закрытия диалога (x) или отмены

#jquery #validation #jquery-ui-dialog

#jquery #проверка #jquery-ui-dialog

Вопрос:

Я получил свою форму в диалоговом окне пользовательского интерфейса jQuery и применяю к ней проверку на стороне клиента. Я хочу очистить все входные значения, а также любые сообщения о проверке, которые пользователь нажимает (x), чтобы закрыть диалоговое окно или кнопку «Отмена», перед отправкой формы.

Я попытался включить функцию очистки формы в событие «закрыть», но это не сработало:

  //Load food form into dialog
    var controllerUrl = '/Stock/GetFoodForm';
    var $createdialog = $('#createfooddialog').load(controllerUrl).dialog({
        autoOpen: false,
        title: 'Create Food',
        modal: true,
        width: 'auto',
        close: clear()
    });
 

Функция очистки используется в функции в jquery.form.js плагин:

 // Function to clear form data
function clear() {
    $('#formData').resetForm();
    $('.validation-summary-valid').val("");
}
 

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

Ответ №1:

Просто используйте clear вместо clear() .

Комментарии:

1. Или close: function() { clear(); } , хотя close: clear это совершенно законно.

2. Большое спасибо!! Никогда не осознавал, что допустил такую ошибку .. и я изменил функцию очистки, чтобы очистить сообщение о проверке: function clear() { // Очистить все входные значения $(‘#FormData’).resetForm(); // Очистить итоговое сообщение о проверке $ (‘.validation-summary-errors span’).remove(); // Очистить сообщение об ошибке имени $(‘.field-validation-error span’).remove(); // Очистить сообщение об ошибке суммы $(‘.field-validation-valid span’).remove(); $(‘#FormData’).find(‘input’).removeClass(‘ошибка ввода-проверки’);