I recently came across a situation where I was a little confused about what technique I should use when working with the JQueryUI Modal Dialog.
I have a function: ClearDay (weekID, ltDayID) . Currently, this is responsible for creating a dialog with two buttons: ok and cancel.
ok will start the ajax call, passing the id of the week and ltDIDID to the server.
Cancel will be an empty div dialog and call .dialog('destroy') in the target div.
My question is: which approach should I use?
Destroy / rearrange the dialog for each call - so that I can pass parameters to the ajax call and have only one div for all dialogs in the markup
function ClearDay(weekID, ltDayID) { $('#modalDialog').dialog({ autoOpen: true, width: 300, title: 'Confirm Delete', modal: true, buttons: [{ text: 'ok', click: function (e) { $(this).dialog('close'); $.ajax({ url: '/Shift/ClearDay', type: 'POST', cache: false, data: { shiftWeekID: weekID, shiftLtDayID: ltDayID }, success: function (result) { LoadShiftPattern(function (result) { $('#weekContainer').html(result); SelectLastUsedField(); }); } }); } }, { text: 'cancel', click: function (e) { $('#errorList').empty(); $(this).dialog('close'); } }], open: function (e) { $(this).html("Clicking ok will cause this day to be deleted."); }, close: function (e) { $(this).empty(); $(this).dialog('destroy'); } }); }
Create a dialog only once, but with one div for each dialog in the markup using Close, and pass the values ββdirectly using Jquery Selectors
$(function() { $('#confirmDeleteDialog').dialog({ autoOpen: false, width: 300, title: 'Confirm Delete', modal: true, buttons: [{ text: 'ok', click: function (e) { $(this).dialog('close'); $.ajax({ url: '/Shift/ClearDay', type: 'POST', cache: false, data: { shiftWeekID: $('#weekIDInput').val(), shiftLtDayID: $('#dayIDInput').val()}, success: function (result) { LoadShiftPattern(function (result) { $('#weekContainer').html(result); SelectLastUsedField(); }); } }); } }, { text: 'cancel', click: function (e) { $('#errorList').empty(); $(this).dialog('close'); } }], open: function (e) { $(this).html("Clicking ok will cause this day to be deleted."); } }); } function ClearDay() { $('#confirmDeleteDialog').dialog('open'); }
Greetings
James