簡體   English   中英

使用javascript在rails 3中提交遠程form_tag,但提交為html

[英]submit a remote form_tag in rails 3 using javascript but submits as html

我在rails 3中有一個form_tag,如下所示,我想通過javascript使用ajax而不是html提交此表單。 當我點擊提交按鈕時,它會以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請求但是當我在javascript中使用form.submit()提交表單時,它會將其作為HTML請求接收。

任何幫助表示贊賞

您可以看到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);

解決:只需使用$("#referenceSubmit").trigger("click"); 其中referenceSubmit是提交按鈕的id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM