Обычная форма отправки / перенаправления для кнопки отправки с Jquery отправляет для других входов (проверка) - PullRequest
0 голосов
/ 12 октября 2010

У меня есть форма, где я использую Jquery для отправки формы для создания вывода предварительного просмотра в правой части моего экрана (у меня есть несколько сложных входных данных и я хочу использовать ruby ​​для их обработки для создания предварительного просмотра) ,

После того, как пользователь заполнил форму и нажал кнопку отправки, я хочу, чтобы форма отправлялась нормально (то есть, как будто Jquery не используется). Есть ли способ сделать это?

Я чувствую, что ответ на этот вопрос, вероятно, очень прост, и я просто что-то упускаю.


Вот как я отправляю кнопку выбора (для проверки)

$('#body_message select').change(function() {
        $('form').submit();
      });

Вот мой текущий код для обработки кнопки отправки. Когда пользователь нажимает кнопку «Отправить», я изменяю значение скрытого поля с идентификатором «message_submit_button», поэтому этот запрос будет обрабатываться не так, как отправленные проверки.

$('#body_message input[type="submit"]').click(function() {
        $('#body_message #message_submit_button').val("1");
        $('form').submit(function(){
            $.ajax({
              type: 'POST',
              url: $(this).attr('action'),
              data: $(this).serialize(),
              success: XMLHttpRequest.getResponseHeader("Location"),
              dataType: "html"
            });
            return false;   
        });

  });



Редакция: Используя первую часть ответа, я изменил Jquery на кнопке отправки на следующую, и она работает как нужно:

$('#body_message input[type="submit"]').click(function() {
      $('#message_submit_button').val("1");
      $('form')[0].submit();    
});

1 Ответ

3 голосов
/ 12 октября 2010

Обойти обработчик jQuery .submit() можно, вызвав функцию native form.submit(), например:

$('form')[0].submit();

Я бы изменил это так:

$('#body_message input[type="submit"]').click(function() {
  $('#message_submit_button').val("1");
  var form = $(this).closest("form")
  $.ajax({
    type: 'POST',
    url: form.attr('action'),
    data: form.serialize(),
    success: XMLHttpRequest.getResponseHeader("Location"),
    dataType: "html"
  });
  return false;   
});

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

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