Опитвам се да извикам jquery ui диалогов прозорец, като прикача функцията към свойството onsuccess на ajaxoptions на ajax.beginform..
<script type="text/javascript">
// Dialog
$(document).ready(function () {
$('#dialog').dialog({
autoOpen: false,
width: 600,
modal: true,
buttons: {
"Ok": function () {
$(this).dialog("close");
}
}
});
});
</script>
В отделен скрипт файл имам това..
function EmailResult() {
$('#dialog').dialog('open');
}
След това имам формуляр за контакт, който всъщност все още не е свързан, контролерът просто отговаря с един от два отговора на низ.
<% using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "ContactResult", OnSuccess="EmailResult" }))
{ %>
Ако извадя OnSuccess="EmailResult"
от Ajax.BeginForm или просто премахна $('#dialog').dialog('open');
от моята функция EmailResult, грешката изчезва, така че очевидно това е проблем със свойството OnSuccess и диалоговия прозорец на Jquery UI.
Първият ми въпрос е правя ли нещо нередно, което кара това да не работи и/или ако това не работи, има ли по-добро решение.
Опитвам се да създам диалогов прозорец, който се появява и казва дали съобщението е изпратено. Не искам да използвам диалоговия прозорец за предупреждение.
Предполагам, че грешката ще помогне, в програмата за отстраняване на грешки на IE 8 излиза с недефинирана грешка в библиотеката MicrosoftAjax.js
Блокът finally на този код причинява проблема и под раздела locals в IE 8 пише, че b е недефинирано.
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
}
}
}
};
Това, което актуализираше, беше
<%= Html.Hidden("ContactResult") %>
Което се оказа, че е целият проблем, промених Hidden Input на div и той работи перфектно. Не знам защо, но... ако някой друг се сблъска с това, ето го...