Показать сообщение отдельно
  #1 (permalink)  
Старый 15.02.2013, 15:13
Интересующийся
Отправить личное сообщение для someone Посмотреть профиль Найти все сообщения от someone
 
Регистрация: 25.09.2012
Сообщений: 21

Как заменить всё содержимое страницы? AJAX/JQuery
Добрый день. Нубский вопрос. Сделал ajax запрос (с целью полной замены <form> на <select>) через событие onchange элемента списка формы, получил в ответ всю полную страницу. Хочу заменить содержимое текущей страницы на содержимое ответа(использую метод $.ajax({complete : complete}) ), без перезагрузки страницы(без location.reload() ). Пока не получается сделать без ошибок.

Код:
$('form.translation>select').on('change', function(){ // ajax запрос на изменение перевода
        var csrftoken = $.cookie('csrftoken');
        var lang = $('form.translation>select').val();

        function complete(jqXHR) {
            alert($(jqXHR.responseText).filter('body'));  // тут ошибка: throw new Error( "Syntax error, unrecognized expression: " + msg );
//            $('body').html($(jqXHR.responseText).filter('body'));
        }

        $.ajax({
            url: '/translate/',
            type: 'POST',
            headers: {'X-CSRFToken': csrftoken},
            data: {lang: lang},
            complete: complete
        })
//        location.reload();

    })


Вот форма на всякий:
<form action="/translate/" method="POST" class="form-inline pull-right translation" style="margin-bottom: 0px;">
<div style='display:none'><input type='hidden' name='csrfmiddlewaretoken' value='SgVdbKyGNHWcLohomtDJSsd2t8tA6CLp' /></div>
        <label for="id_lang">Language:</label><select name="lang" id="id_lang">
        <option value="ru">Русский</option> 
        <option value="en" selected="selected">English</option>
        </select>
        <input type="submit" class="btn" value="Change">
    </form>


Подскажите как можно сделать корректно? При использовании location.reload() вроде всё работает без нареканий.
Ответить с цитированием