Wie schließen Sie den jQuery-Dialog innerhalb des Dialogs, ohne die Schließen-Schaltfläche zu verwenden?
Im UI-Dialogfeld befindet sich eine einfache Formularanforderung. Wenn eine erfolgreiche Übergabe erfolgt, wird das UI-Dialogfeld automatisch geschlossen und die übergeordnete Seite wird aktualisiert.
<script type="text/javascript">
$(document).ready(function () {
$("#form-dialog").dialog({
autoOpen: true,
modal: true,
width: 200,
draggable: true,
resizable: true
});
});
</script>
<div id="form-dialog" title="Form Submit">
<form action="default.aspx" method="post">
<input type="text" name="name" value=" " />
<input type="submit" value="submit" />
<a href="#" id="btnDone">CLOSE</a>
<script type="text/javascript">
$(document).ready(function () {
$("#btnDone").click(function () {
$(this).dialog('close');
});
});
</script>
</form>
</div>
-imperialx
Versuche dies
$(this).closest('.ui-dialog-content').dialog('close');
Der Dialog wird geschlossen.
sie können es programmgesteuert schließen, indem Sie es aufrufen
$('#form-dialog').dialog('close')
wann immer du willst.
Du brauchst
$('selector').dialog('close');
Schließen Sie in einem Dialog von iframe:
window.parent.$('.ui-dialog-content:visible').dialog('close');
$(this).parents(".ui-dialog-content").dialog('close')
Einfach, ich mag es sicher zu stellen, dass ich nicht:
Nachdem ich alle diese Antworten ohne Erfolg überprüft hatte, funktionierte der folgende Code für mich, um das Problem zu lösen:
$(".ui-dialog").dialog("close");
Vielleicht ist dies auch ein guter Versuch, wenn Sie nach Alternativen suchen.
ersetzen Sie eine Zeichenfolge in
$("#form-dialog").dialog('close');
$ (this) bedeutet hier ein anderes Objekt $ ("# btnDone")
<script type="text/javascript">
$(document).ready(function () {
$("#form-dialog").dialog({
autoOpen: true,
modal: true,
width: 200,
draggable: true,
resizable: true
});
});
</script>
<div id="form-dialog" title="Form Submit">
<form action="default.aspx" method="post">
<input type="text" name="name" value=" " />
<input type="submit" value="submit" />
<a href="#" id="btnDone">CLOSE</a>
<script type="text/javascript">
$(document).ready(function () {
$("#btnDone").click(function () {
//I've replaced next string
// $(this) here means another object $("#btnDone")
$("#form-dialog").dialog('close');
});
});
</script>
</form>
</div>
$(document).ready(function () {
$("#form-dialog").dialog({
autoOpen: true,
modal: true,
width: 200,
draggable: true,
resizable: true,
buttons: {
"Close": function () {
$("#idDialog").dialog("close");
}
}
});
});
Dadurch wird ein Button zum Schließen angezeigt. Sie können die Funktion auch close aufrufen
$("#idDialog").dialog("close");
in einer Funktion, dies zu tun. oder sogar in einer taste/a
< a href="javascript:void(0);" id="btnDone"
onClick="$("#idDialog").dialog("close");">CLOSE</a>
EDIT: Sie benötigen dies, um Ihren Dialog in ein Formular aufzunehmen:
open: function (type, data) {
$(this).parent().appendTo($("form:first"));
}
Hinzufügen dieses Links im Freien
$(this).parent().appendTo($("form:first"));
funktioniert perfekt.
der bessere Weg ist "Zerstören und Entfernen" anstelle von "Schließen" Dadurch wird "html" des Dialogfelds aus dem DOM entfernt
$(this).closest('.ui-dialog-content').dialog('destroy').remove();