ajaxSubmit и другой код.Может кто-нибудь помочь мне определить, что делает этот код? - PullRequest
0 голосов
/ 22 апреля 2010

Я унаследовал некоторый код, который мне нужен для отладки. Это не работает в настоящее время. Моя задача - заставить его работать. Никаких других требований не было дано мне. Нет, это не домашняя работа, это работа по уходу за кошмаром.

ASP.Net (Framework 3.5), C #, jQuery 1.4.2. Этот проект активно использует jQuery и AJAX. На странице есть раскрывающийся список, который при выборе элемента должен добавить этот элемент (это пользователь) к объекту в базе данных.

Для этого предыдущий программист сначала при загрузке страницы динамически загружает всю страницу через AJAX. Для этого у него есть 5 делителей, и каждый загружается из вызова jQuery на другую полную страницу веб-сайта.

Каким-то образом HTML, BODY и все остальное убирается, а содержимое div загружается вместе с содержимым страницы aspx. Что кажется мне невероятно неправильным, поскольку браузер волшебным образом удаляет теги html, head, body, form и объединяет их с существующими тегами html head body form.

Кроме того, поскольку страница «content» возвращается в виде строки, предыдущий программист запускает этот код перед добавлением в div:

function CleanupResponseText(responseText, uniqueName) {
    responseText = responseText.replace("theForm.submit();", "SubmitSubForm(theForm, $(theForm).parent());");
    responseText = responseText.replace(new RegExp("theForm", "g"), uniqueName);
    responseText = responseText.replace(new RegExp("doPostBack", "g"), "doPostBack" + uniqueName);
    return responseText;
}

Когда сам выпадающий список запускает событие onchange, здесь запускается код:

function SubmitSubForm(form, container) {
    //ShowLoading(container);
    $(form).ajaxSubmit( {
                url: $(form).attr("action"),
                success: function(responseText) {
                    $(container).html(CleanupResponseText(responseText, form.id));
                    $("form", container).css("margin-top", "0").css("padding-top", "0");
                    //HideLoading(container);
                }
            }
        );
    }

В IE возникает сообщение об ошибке «Ошибка времени выполнения Microsoft JScript: объект не поддерживает это свойство или метод», что, как мне кажется, должно быть в том, что метод $ (form) .ajaxSubmit не поддерживает есть.

Что этот код действительно пытается сделать? Я так обернулся прямо сейчас, что думаю, что мой единственный вариант - это все бросить и начать все сначала. Но я бы предпочел не делать этого без необходимости.

Этот код хорош? Работает ли он против .Net, и поэтому у нас возникают проблемы?

Ответы [ 2 ]

0 голосов
/ 04 мая 2010

Похоже, было слишком много веселья в jQuery. Я полностью переработал весь блок кода, так как он изначально был плохо спроектирован.

0 голосов
/ 22 апреля 2010

Поиск в Google для

JQuery AJAX отправить

показывает плагин jQuery Form . Учитывая это, есть ли этот файл на вашей странице, где другой код будет иметь доступ к методу? Этот код работает в Firefox, а не в IE?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...