Ich habe ein jQuery UI Modal Formular erstellt, und ich möchte, dass dieses Formular ein Postback auslösen, aber ich habe Schwierigkeiten, es zur Arbeit zu bekommen.jQuery modal form dialog postback probleme
Ich weiß, dass es ziemlich viele Artikel gibt, die auf der Verwendung des SimpleModal-Plugins basieren, und ich habe versucht, diese anzupassen und die _doPostback-Funktion außer Kraft zu setzen, aber ohne Freude.
Ich denke, das Problem liegt im Aufruf meiner __doPostBack-Funktion und was die Parameter sein sollten. Ist das der Fall?
Hier ist meine Form
<form id="summaryForm" runat="server">
<div id="dialog" title="Quick Booking">
<p>Select user from list or enter name in box</p>
<fieldset>
<p><label>Is machine going out of the office?</label></p>
<asp:RadioButton TextAlign="Left" GroupName="outOfOffice" Text="Yes" ID="optYes" class="radio" runat="server" />
<asp:RadioButton TextAlign="Left" GroupName="outOfOffice" Text="No" ID="optNo" class="radio" runat="server" Checked="true" />
<label for="dropLstUser">User:</label>
<asp:DropDownList ID="dropLstUser" runat="server" />
<input type="text" name="txtUser" id="txtUser" value="" class="text" />
<label for="txtStartDate">Start Date:</label>
<input type="text" id="txtStartDate" name="txtStartDate" class="datepicker" />
<asp:HiddenField ID="assetField" runat="server" />
<%--<button onclick="performPostBack('summaryForm')">Postback</button>--%>
</fieldset>
</div>
//--------------------------------
Hier ist der JavaScript-Code:
<script type="text/javascript">
$(function() {
$("#dialog").dialog({
bgiframe: true,
height: 300,
modal: true,
buttons: {
'Close': function() {
alert("closing");
$(this).dialog("close");
__doPostBack = newDoPostBack;
__doPostBack("aspnetForm",null);
}
}
});
});
function newDoPostBack(eventTarget, eventArgument)
{
alert("postingback");
var theForm = document.forms[0];
if (!theForm)
{
theForm = document.aspnetForm;
}
if (!theForm.onsubmit || (theForm.onsubmit() != false))
{
document.getElementById("__EVENTTARGET").value = eventTarget;
document.getElementById("__EVENTARGUMENT").value = eventArgument;
theForm.submit();
}
}
</script>
der Grund, warum ich die ID aspnetForm gesetzt war, weil ich die reale Form Name versucht, mit - summaryForm und meine Firebug JavaScript-Debugger, sagte __EVENTTARGET null war. Ich untersuchte die Quelle und bemerkte, dass asp.net die clientside ID zu aspnetForm ändert - immer noch __EVENTTARGET ist null ... – mancmanomyst
ist das Steuerelement, das Postback das Formular selbst oder die Schaltfläche verursacht? In diesem Fall ist es ein modales Dialogfeld, so dass es keine Schaltfläche zum Senden gibt.Ich habe versucht, meine eigene Übermittlungsschaltfläche zu addieren, anstatt eine der jquery erzeugten Tasten auch zu überschreiben, aber das hat auch nicht funktioniert. – mancmanomyst