Ho creato un modulo modale jQuery UI e desidero che tale modulo attivi un postback, ma ho difficoltà a farlo funzionare.jQuery form modal problemi di postback della finestra di dialogo
So che ci sono alcuni articoli basati sull'uso del plugin SimpleModal, e ho provato ad adattare questi e sovrascrivere la funzione _doPostback, ma senza gioia.
Penso che il problema sia nella chiamata alla mia funzione __doPostBack e quali dovrebbero essere i parametri. È questo il caso?
Ecco la mia forma
<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>
//--------------------------------
Ecco il codice JavaScript:
<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>
Il motivo per cui impostare l'ID per aspnetForm era perché ho provato ad utilizzare il vero nome del modulo - summaryForm e la mia Firebug JavaScript debugger detto __EVENTTARGET era nullo. Ho esaminato la fonte e ho notato che asp.net cambia l'id del clientide in aspnetForm - ancora __EVENTTARGET è nullo ......... – mancmanomyst
è il controllo che causa il postback del modulo stesso o del pulsante? In questa istanza è una finestra di dialogo modale quindi non c'è alcun pulsante di invio.Ho provato ad aggiungere il mio pulsante di invio invece di sovrascrivere uno dei pulsanti generati da jQuery, ma anche questo non ha funzionato. – mancmanomyst