Я использую плагин Эрика Мартина SimpleModal 1.4.1 с JQuery 1.4.2 для отображения базовой формы в модальном окне.
Форма содержит 2 элемента Jatuicker UI JQuery.
Все работает как задумано (я думаю). Datepickers отображают свои календари, когда пользователь выделяет текстовые поля Datepicker. Когда пользователь нажимает кнопку «Отмена», модальное изображение исчезает, а значения, содержащиеся в элементах Datepicker, скрываются. Вот в чем проблема.
Мне нужно модальное окно, чтобы «забыть» все значения формы, которые оно содержит, когда окно закрыто, либо потому, что форма была отправлена, либо была нажата кнопка отмены, а не просто скрыть их. Я не против, если мне придется делать это программно, если это необходимо.
Мой текущий код SimpleModal выглядит так:
$('#NewDeliverable').click( function() {
$("#DeliverableFormContainer").modal({onOpen: function (dialog) {
dialog.overlay.fadeIn('slow', function () {
dialog.data.hide();
dialog.container.fadeIn('slow', function () {
dialog.data.slideDown('slow');
});
});
EDIT
Спасибо @Josiah Ruddell за помощь. Вот полный рабочий код для всех остальных с этой проблемой:
$('#NewDeliverable').click( function()
{
$("#DeliverableFormContainer").modal({
onOpen: function (dialog)
{
dialog.overlay.fadeIn('slow', function ()
{
dialog.data.hide();
dialog.container.fadeIn('slow', function ()
{
dialog.data.slideDown('slow');
});
});
},
onClose: function(dialog)
{
dialog.data.find(':input').each(function ()
{
switch (this.type)
{
case 'password':
$(this).val('');
break;
case 'select-multiple':
case 'select-one':
$(this).val(-1);
break;
case 'text':
case 'textarea':
$(this).val('');
break;
case 'checkbox':
case 'radio':
this.checked = false;
}
});
$.modal.close(); // must call this!
}, persist: true
});
});
}});
});