0

与えられた:

<%=form_for [:project, @note], :remote => true do |f| %>

数秒ごとに自動的に保存されるjqueryバインドを作成したいと思います。タイミングの部分についてはまだ心配していませんが、jqueryを使用してフォームを自動的に送信する方法(つまり、ユーザーによるボタンクリックの送信ではない)だけです。

これを試しましたが、機能しません。提案?

$('form[data-remote]').live('submit', function (e) {
    alert(1);
    e.preventDefault();
});

ありがとう!

4

4 に答える 4

4

つまり、自動保存のようなものについて話しているのですね。

これにJavascript間隔を指定したいかもしれません。例は次のとおりです。

var autosave = window.setInterval("autosaveForm()", 1000);

function autosaveForm() {
  $('form[data-remote]').submit();
}

autosaveForm()これが行うことは、毎秒呼び出してフォームを送信することです。clearInterval自動保存を停止するには、次のように使用できます。

window.clearInterval(autosave);

これが役立つことを願っています。

于 2010-10-25T22:45:23.177 に答える
2

$('form[data-remote]').submit()フォームを送信します。

于 2010-10-25T22:38:18.420 に答える
0

setInterval から始めます。

  setInterval(transmit, 3000);

この関数を呼び出すもの:

function transmit(){
 // get the form field data
 var params = {
   formField1:$("input#formField1").val(),
   formField2:$("input#formField2").val()
 }

 // make the ajax call
 var url = "/controller/action";
   $.post(url, params,
     function(response, status){
     //display results(response, status);
   });
}
于 2010-10-25T23:16:34.937 に答える
0

jQuery のどのバージョンを使用していますか? IEを使用していますか?live() の初期のバージョンは、IE のフォーム送信では機能しませんでした。( http://github.com/rails/jquery-ujs/issues/issue/8を参照)

私はこれを使って終わったと思います:

if (jQuery.browser.msie){
    $("form[data-remote]").delegate("input[type='submit'],button[type='submit'],input[name='commit']", 'click', function(e) {
        $(this).parents("form[data-remote]").submit();
        if(e.preventDefault) e.preventDefault();
    });
}

プロジェクトで。

于 2010-10-26T02:03:49.840 に答える