Ну, у меня есть форма, которая появляется в модальном диалоге, когда пользователь нажимает на тот или иной элемент.В зависимости от того, что попало, поведение диалога должно немного измениться.Например, по умолчанию диалоговое окно должно иметь кнопки [OK] и [Отмена], а также кнопку закрытия [X] в правом верхнем углу.Но иногда я хочу, чтобы кнопки [X] и [Cancel] были скрыты, а escape - отключены.Идентификатор формы и набор полей остаются неизменными.
Я пробовал следующее:
var dlg1 = $('#dlgForm').dialog({
autoOpen: false,
modal: true,
width: 607,
resizable:false,
buttons: {
Submit: function() {
// some actions here
$(this).dialog("close");
return false;
},
Cancel: function() {
$(this).dialog("close");
}
},
close: function() {
$('#dlgForm input[type="text"]').val(null);
}
});
var dlg2 = $('#dlgForm').dialog({
autoOpen: false,
modal: true,
width: 607,
resizable:false,
dialogClass: 'noCloseButton',
closeOnEscape: false,
buttons: {
Submit: function() {
// some actions here
$(this).dialog("close");
return false;
}
},
close: function() {
$('#dlgForm input[type="text"]').val(null);
}
});
$("#button1").click( function() {
dlg1
.dialog('option', 'title', 'New Title')
.dialog('open');
});
$("#button2").click( function() {
dlg2
.dialog('option', 'title', 'New Title')
.dialog('open');
});
Теперь проблема заключается в том, если я нажму кнопку 1, чтобы показать dlg1, а затем закроюзатем нажмите кнопку 2, параметры не изменятся.В отображаемом диалоге все еще есть опции от dlg1.И наоборот, если dlg2 был показан первым, обработчик button1 не отменяет параметры диалога.Где я не прав?Заранее большое спасибо.
Поскольку не разрешено отвечать на собственные вопросы до истечения 8 часов, я редактирую вопрос для предоставления ответа:
ВсеХорошо, я понял это.В итоге я сделал следующее:
var dlg1 = function() {
return $('#dlgForm').dialog({
autoOpen: false,
modal: true,
width: 607,
resizable:false,
buttons: {
Submit: function() {
// some actions here
$(this).dialog("close");
return false;
},
Cancel: function() {
$(this).dialog("close");
}
},
close: function() {
$('#dlgForm input[type="text"]').val(null);
}
})
}
var dlg2 = function() {
return $('#dlgForm').dialog({
autoOpen: false,
modal: true,
width: 607,
resizable:false,
dialogClass: 'noCloseButton',
closeOnEscape: false,
buttons: {
Submit: function() {
// some actions here
$(this).dialog("close");
return false;
}
},
close: function() {
$('#dlgForm input[type="text"]').val(null);
}
});
}
$("#button1").click( function() {
dlg1()
.dialog('option', 'title', 'New Title')
.dialog('open');
});
$("#button2").click( function() {
dlg2()
.dialog('option', 'title', 'New Title')
.dialog('open');
});
Вот и все!Спасибо всем за вашу помощь.