После вызова jquery AJAX я не могу включить ввод текста.
ГАДЮКА.Net app использует JQuery AJAX. Перед вызовом AJAX я могу обновить ввод в текстовом поле, но после вызова AJAX он кажется полностью отключенным, не позволяя редактировать текстовое поле, но другие элементы управления (флажок, кнопки, datepicker) все еще включены.
Обратите внимание, что в конце in .complete я добавил строку, чтобы попытаться принудительно включить ее, но это не помогло:
$('#idtxtLoggingDaysDisplayed').prop('disabled', false);
Любые предложения будут очень признательны. Спасибо, Майк
$.ajax({ type: "POST", url: "GC_UserErrors.aspx/receiveAJAXMessage", data: sMsg1, beforeSend: function () { $(document).keydown(function () { return false; }); // disable keyboard input $(".overlay").show(); // show loader $('#loadingGIF').show(); }, contentType: "application/json; charset=utf-8", dataType: "json", complete: function () { $(document).keydown(function () { return true; }); // enable keyboard $(".overlay").hide(); //hide loader $('#loadingGIF').hide(); $('#idtxtLoggingDaysDisplayed').prop('disabled', false); }, success: OnSuccess, failure: //function (response) { OnFailure });
Что я уже пробовал:
Также пробовать
$('#idtxtLoggingDaysDisplayed').attr('disabled', false);
MadMyche
Какие-либо ошибки выбрасываются/отображаются в консоли разработчика браузеров? (например, огненный жук)
Michael Breeden
Нет, в консоли ничего нет. (С Помощью Инструментов Разработчика Chrome.) ... Это был хороший звонок. Я тестировал в FF, и в консоли нет ничего, кроме того, что я туда положил.
MadMyche
И есть ли возвращаемые данные?
Michael Breeden
Да. Я читаю значение в текстовом поле и отправляю его с помощью AJAX. Он работает в первый раз, затем текстовое поле становится "только для чтения" или "отключено", но я могу обновить другие элементы управления и повторно запустить процесс AJAX. Все данные считываются и отправляются правильно, включая данные в текстовом поле. Я просто не могу изменить эти данные.
Bryian Tan
Какую версию jQuery использует код? функция complete() может быть устаревшей . заменяет на всегда() на jQuery."Аякс" () | библиотека jQuery API документация[^]
Michael Breeden
Я использую jquery-1.8.2.min.js-но теперь, когда вы упомянули об этом, я попробую ... jquery-2.2.0.min.js ... Никакой Помощи, Шить... давайте посмотрим, что произойдет, если я по отдельности отключу и включу все элементы управления вместо этого.
(1)закомментируйте код:
$(документ).клавиша вниз(функция () { возвращение ложным; });
Это устраняет проблему, хотя и не объясняет ее...
Когда точки останова отключены, ответ почти мгновенный, поэтому я не уверен, что именно нужно попытаться отключить, чтобы это помогло. Это простая форма. Ааа. Кнопка может быть случайно нажата дважды (Есть ли у html-переключателя отскок, как у механического переключателя? :) ). Однако средство выбора даты не может быть использовано за то время, которое требуется для завершения ответа AJAX.