0
私は.submit()
メソッドを使用してデータを送信しています。jQuery with Rails - 内部で関数を実行しない
私は1つをクリックしたとき、私は何を持っていることは、それが自動的にこれを使用してDBに更新し、代替案との質問形式である:
は
function save_response_with_ajax(t){
$('#edit_response_set_' + t).submit();
}
をapplication.jsとラジオボタンはこれです:
<%= rs_a_form.input :answer_id,
:collection => "code that gets the info",
:as => :radio,
:input_html => {
:onclick => 'save_response_with_ajax(' + response_set.id.to_s + ');'} %>
すべてがうまくいきますが、ラジオボタンを何度もクリックすると、フォームが再びレンダリングされるので、複数のajaxリクエストを避ける方法を探していました私は多くの時間をクリックします)、私は$ .ajax()メソッドを使用する必要があります。 問題は書き込み時です:
function save_response_with_ajax(t){
$("#form").submit(function(){
//it suppose to be $.ajax(url, .....) instead of alert
// I'm just testing
alert("hi");
});
}
何も起こりません。誰かがあなたがAJAX要求が起動したときの機能をトリガーするglobal ajax event handlersを使用して終了することができ、複数の提出を避けるために、私に
まずリモートフォームを使用する必要があります - それは簡単です独自のJSを書く必要はありません。しかし、私の意見では、この場合、あなたの問題はclickイベントのsubmitイベントを入れ子にしています。 save_response_with_ajaxメソッドでは、2つのことを行う必要があります。最初にボタンを無効にしてから、ajaxでいくつかのことを行います。 – codevoice
はい私はリモートを使用していますが、主な問題は、何度もクリックしたときに行うことができる複数のajax呼び出しです(バグの一種です。たくさんクリックするとフォームが再びレンダリングされるためです) – JavierQQ23
最初のクリック後にボタンを無効にするのはどうですか?送信ボタンのオプションに追加:disable_with => "投稿中..." – codevoice