2012-03-15 18 views
3

次のように私はform_tagをレール3に入れました。このフォームは、javascript経由でhtmlではなくajaxを使用して送信します。私は、送信ボタンをクリックすると、それはなぜそれがあることjavascriptを使用してレール3にリモートform_tagを送信しますが、htmlとして送信します

$(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; 
}; 

されたファイルも、私はjQueryのを使用していますので、私は私のapplication.jsでこれらの機能を持っている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" 

として提出しない私は、ボタンを押したとき手動で、それはjavascriptリクエストを送信しますが、私はjavascriptでform.submit()を使用してフォームを送信すると、それをHTMLリクエストとして受け取ります。

すべてのヘルプは

答えて

0

を高く評価しているあなたはそれがないかを理解するために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); 
+0

RequestHeaderはどこで更新されますか?私はjquery_ujsをチェックしてそこにありますが、私はどこでどのように更新するのか分かりません。私はこれで初心者のビット、迅速な返答のおかげで – user1167805

0

解決済み:ちょうど$("#referenceSubmit").trigger("click");を使用してください。ここで、referenceSubmitはサブミットバットのIDですon

関連する問題