1

RailsビューにHTMLフォームがあります

<form name="input">
Username: <input type="text" name="user"> <br/>
<input type="button" id="submit_form" value="Submit">
</form> 

送信ボタンがクリックされたら、JQueryを使用してコントローラーを呼び出しdownload、パラメーターを渡しuserます。(routes.rbで指定しますmatch "download" => "Posts#download"

これを行うには、JQueryをどのように使用する必要がありますか?

$("#submit_form").click(function() {
  // what should I put here?
});
4

5 に答える 5

2

あなたはこれを行うことができます:

/* attach a submit handler to the form */
  $("#submit_form").submit(function(event) {

    /* stop form from submitting normally */
    event.preventDefault(); 

    /* get some values from elements on the page: */
    var $form = $( this ),
        term = $form.find( 'input[name="user"]' ).val(),

    /* Send the data using post and fire some callback */
    $.post( "/download", { s: term },
      function( data ) {
       //some callback
      }
    );
  });

出典:jQueryドキュメントからの変更された

于 2012-11-11T20:25:45.337 に答える
0
$("#submit_form").click(function() {
  // what should I put here?
  $('form[name="input"]').submit();
});

または、id ="submit_form"を使用して入力にtype="submit"を設定するだけで、ハンドラーを設定しないでください。

于 2012-11-11T20:22:18.180 に答える
0

私はRails開発者ではありませんが、次のように、ルートをフォームアクションに入れて、送信を使用することはできません。

<form name="input" action="/Download">

$("#submit_form").click(function() {
  $("#input").submit();
});
于 2012-11-11T20:23:26.073 に答える
0

jQueryは.submit()を提供しますhttp://api.jquery.com/submit/

その送信ボタンはすでにフォームを送信することを知っているので、入力ボタンのクリックメソッドにバインドする必要はありません。

あなたが探しているのは

$("form[name='input']").submit(function(){
  //do something before function gets submitted
});

その関数内では、サーバーへのajax呼び出しが必要であり、preventDefaultを使用してフォームの元の送信をキャンセルします。

于 2012-11-11T20:24:52.077 に答える
0

私が正しく理解していれば、通常のポストプロセスではなく、jQueryを介してフォームを送信しようとしています。jQueryのフォーム送信機能を使用することをお勧めします

基本的に、次のようなものを探します。

$("form").submit(function() {
  var data = $(this).serialize();
  $.ajax({
    url: "controller/action",
    type: "POST",
    data: data
    // plus anyother options you are wanting
  }).done(function() { 
    // a success function
  });
  return false;
  });

お役に立てば幸いです。

于 2012-11-11T20:29:31.630 に答える