我关闭它时从JQuery对话框中删除数据

我有JQuery对话框用于在表中插入新行。 一切都很好。 几天前,当我为表插入FlexiGrid时,我遇到了一个问题。 当我插入新的行对话框dissapear但当我打开对话框时,插入的新插入数据仍然在对话框中。

在完成使用后,如何重置对话框字段。

对话框的代码是这样的:

$(function() { $( "#dialog:ui-dialog" ).dialog( "destroy" ); $( "#newDialog-form" ).dialog({ autoOpen: false, height: 250, width: 300, modal: true, buttons: { Salva: function() { $.ajax({ url: 'agendaTipoAppuntamentoSaveJson.do', type: "POST", dataType: "json", data: $("#newDialogForm").serialize(), success: function(result) { if (result.esito!='OK') { alert(result.esito + ' ' + result.message); } else { addNewTipoAppuntamento( result.insertedTipoApp.idTipoAppuntamento , result.insertedTipoApp.codice, result.insertedTipoApp.descrizione, result.insertedTipoApp.descrBreve, result.insertedTipoApp.colore ); $("#newTable").flexReload(); $( "#newDialog-form" ).dialog( 'close' ); } }, error:function (xhr, ajaxOptions, thrownError){ alert(xhr.status); alert(thrownError); } }); }, Annula : function() { $( this ).dialog( "close" ); } } }); $( "#newDialog-form" ).dialog({ closeText: '' }); }); 

这是对话框forms:

 

检查对话框关闭事件。 您需要存储对话状态,状态将包括(标题,文本等),如果您正在修改它。

更新

阅读评论后,我得到了什么,根据它给出答案。 如果我错了,请纠正我。

在打开dailog表单之前,将html存储到本地变量,然后在关闭它之前将html设置回对话框。

 var originalContent; $("#newDialog-form").dialog({ //Your Code, append following code open : function(event, ui) { originalContent = $("#newDialog-form").html(); }, close : function(event, ui) { $("#newDialog-form").html(originalContent); } }); 

希望这对你有所帮助。

您可以使用jQuery对话框的close事件。

有关jQuery UI的更多信息。

例如

 $( "#newDialog-form" ).dialog({ ... close : function() { //functionality to clear data here } }); 

如果将此行添加到“保存”或“取消”function,它会起作用吗?

  $( "#newDialog-form" ).html(""); 

或更直接的方法(thx @mplungjan):

  $( "#newDialog-form" ).empty(); 

它使对话框内的所有内容都消失,这是最好的方式,以便不显示最后的数据。

您可以通过将html属性设置为空来清除DIV中的所有html内容。

 $("#ElementId").html(""); 

为什么不在每次打开时都在对话框中创建HTML,然后执行以下操作:

 $(this).dialog("close"); $(this).remove(); 

..在你完成插入新记录之后,通常在之后

 $('#yourForm').submit(); 

干杯!