ajax load отключает другие ссылки, форма отправляется, даже если возвращается false, - PullRequest
0 голосов
/ 05 мая 2011

Я пытаюсь загрузить части формы на основе результатов проверки. вот код, который я использую То же самое для всех этих кнопок в форме.

$("#button").click(function(e){
      e.preventDefault();
      noPgLoad(this);
});
function noPgLoad(button){
  $.ajax({
    type: "POST",
    url: url,
    data : serialized_data,
    success: function(data,textStatus,xhr){
           $('#somediv').replaceWith(data);
           return false;
           },
    error: fail,
    dataType: "html"
 });
}

В просмотрах django я проверяю, если request.is_ajax () ВОПРОСЫ:

  1. ajax-вызов заменяет правильные результаты проверки, но другие ссылки на странице не работают.
  2. при нажатии на кнопку после успешного вызова ajax она отправляет форму form.i.e, функция jquery для ajax не вызывается, и поэтому форма отправляется. Весь мой день прошел с этим, будучи новичком Ajax. Любые идеи приветствуются.

1 Ответ

0 голосов
/ 05 мая 2011

Я не уверен насчет вашей первой проблемы, но я думаю, что вы можете решить вторую, используя live ( см. Документы jquery ) вместо click

$("#button").live('click', function(e){
  e.preventDefault();
  noPgLoad(this);
});

Чтобы кратко объяснить, когда вы используете click, это относится только к элементам на странице.Я думаю, что ваш код $('somediv').replaceWith(data) заменяет кнопку.Щелчки по новой кнопке не будут запускать обработчик, потому что он был добавлен после того, как обработчик был прикреплен.

Если вы используете live, затем добавьте новую кнопку, затем щелчки по новой кнопке вызовут обработчик.

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