Я пытаюсь вызвать диалоговое окно 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.
Мой первый вопрос: я делаю что-то неправильно, из-за чего это не работает и / или если это не сработает, тогда есть лучшее решение.
Я пытаюсь создать диалоговое окно, которое показывает, было ли сообщение отправлено. Я не хочу использовать диалоговое окно с предупреждением.
Полагаю, что это поможет, в отладчике IE 8 возникает неопределенная ошибка в библиотеке MicrosoftAjax.js
Последний блок этого кода вызывает проблему, и на вкладке 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") %>
Оказалось, что это была целая проблема, я изменил скрытый ввод на div, и он работает отлично. Не знаю почему, но ... если кто-то еще столкнется с этим, вы идете ...