J'essaie d'appeler une boîte de dialogue ui jquery en attachant la fonction à la propriété onsuccess des ajaxoptions sur un ajax.beginform ..ajax.beginform onsucess updatetargetid entrée cachée
<script type="text/javascript">
// Dialog
$(document).ready(function() {
$('#dialog').dialog({
autoOpen: false,
width: 600,
modal: true,
buttons: {
"Ok": function() {
$(this).dialog("close");
}
}
});
});
</script>
Dans un fichier séparé script que je cette ..
function EmailResult() {
$('#dialog').dialog('open');
}
, j'ai un formulaire de contact qui ne fait encore câblé, le régulateur répond juste avec l'une des deux réponses à cordes.
<% using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "ContactResult", OnSuccess="EmailResult" }))
{ %>
Si je prends le OnSuccess="EmailResult"
du Ajax.BeginForm ou simplement retirer $('#dialog').dialog('open');
de ma fonction EmailResult l'erreur disparaît si ce obvisouly est un problème avec la propriété OnSuccess et une interface utilisateur JQuery Dialog.
Ma première question est de savoir si je fais quelque chose qui ne fonctionne pas et/ou si cela ne fonctionne pas, alors il y a une meilleure solution. J'essaye de créer une boîte de dialogue qui apparaît et indique si le message a été envoyé. Je ne veux pas utiliser la boîte de dialogue d'alerte.
je suppose que l'erreur serait utile, dans l'IE 8 débogueur il arrive avec une erreur non définie dans la bibliothèque MicrosoftAjax.js
Le bloc finally de ce code est à l'origine du problème et sous l'onglet habitants dans IE 8 il est dit que b est indéfini.
this._onReadyStateChange = function() {
if (a._xmlHttpRequest.readyState === 4) {
try {
if (typeof a._xmlHttpRequest.status === "undefined") return
} catch (b) {
return
}
a._clearTimer();
a._responseAvailable = true;
try {
a._webRequest.completed(Sys.EventArgs.Empty)
} finally {
if (a._xmlHttpRequest != null) {
a._xmlHttpRequest.onreadystatechange = Function.emptyMethod;
a._xmlHttpRequest = null
}
}
}
};
Ce qu'il a été mise à jour était
<%= Html.Hidden("ContactResult") %>
qui se révèle était le problème, je l'ai changé l'entrée cachée à un div et il fonctionne parfaitement. Je ne sais pas pourquoi mais ... si quelqu'un d'autre se heurte à ce que vous allez ...
La boîte de dialogue modale fonctionne également parfaitement lorsque vous la connectez à un lien, cela ne fonctionne pas dans l'exemple ci-dessus. En fait, si vous le reliez à OnComplete au lieu de OnSucces, la boîte de dialogue modale apparaîtra, mais vous aurez toujours la même erreur. – Casey