отправить удаленный form_tag в рельсы 3, используя JavaScript, но отправляет как HTML - PullRequest
3 голосов
/ 15 марта 2012

У меня есть form_tag в рельсах 3, как показано ниже, и я хочу отправить эту форму, используя ajax вместо html через javascript.Когда я нажимаю кнопку отправки, она отправляется как javascript

- form_tag({:controller => "checkin", :action => "main_page"}, :remote => true, :method => :get, :id => "get_location_form" ) do
  Latitude:
  = text_field_tag 'latitude_field', '', :size => 10, :class => 'submittable'
  Longitude:
  = text_field_tag 'longitude_field', '', :size => 10, :class => 'submittable'
  = submit_tag "Send Info"

Также я использую jQuery, поэтому у меня есть эти функции в моем файле application.js

$(document).ready(function() {
   $("#get_location_form").submitWithAjax();
});

jQuery.fn.submitWithAjax = function() {
  this.submit(function() {
    $.post(this.action, $(this).serialize(), null, "script");
    return false;
  });
  return this;
};

Почему это когдаЯ нажимаю кнопку вручную, она отправляет запрос javascript, но когда я использую форму.submit () в javascript для отправки формы, она получает ее как запрос HTML.

Любая помощь приветствуется

Ответы [ 2 ]

0 голосов
/ 16 марта 2012

решено: просто используйте $("#referenceSubmit").trigger("click");, где referenceSubmit - это идентификатор кнопки отправки

0 голосов
/ 15 марта 2012

Вы можете увидеть скрипт jquery_ujs, чтобы понять, как он работает:

https://github.com/rails/jquery-rails/blob/master/vendor/assets/javascripts/jquery_ujs.js

Я думаю, вам нужно обновить RequestHeader, как это сделано здесь: https://github.com/rails/jquery-rails/blob/master/vendor/assets/javascripts/jquery_ujs.js#L137

xhr.setRequestHeader('accept', '*/*;q=0.5, ' + settings.accepts.script);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...