0

new.html.erb ページに次のコードがあります。

<h3>Create Make Payment </h3>   
    <%= simple_form_for(@payment) do |f| %>   <%= f.error_notification %> <div class="form-inputs">
    <%= f.input :email, collection:@arr,:required=>true,:id=>"payment_email" ,:class=>"chosen-select"%>   </div>   <div class="form-inputs">
    <%= f.hidden_field :user_id,:value=>User.find_by_email(ar).id,:id=>"user_id" %>   </div>  <div class="form-inputs">
    <%= f.input :amount,:required=>true%>   </div>

    <div class="form-inputs">
    <%= f.input :desc, as: :text ,:required=>true%>   </div>

  <div class="form-actions">
    <%= f.button :submit %>   </div> <% end %>

payment_email 選択ボックスの変更時に、Ajax リクエストを実行したいと考えています。私は次のことをしました。

  1. respond_to do |format| format.js支払いコントローラーの作成アクションに追加されました。

  2. jsファイルに以下を書きました。

jQuery.ajaxSetup({ 
  'beforeSend': function(xhr) {xhr.setRequestHeader("Accept", "text/javascript")}
})

jQuery.fn.submitWithAjax = function() {
  this.onChange(function() {
    $.post(this.action, $(this).serialize(), null, "script");
    return false;
  })
  return this;
};

$(document).ready(function() {
  $("#payment_email").submitWithAjax();
})
  1. create.js.erb というファイルを作成し、その中に次のように入力しました。

    $("#user_id").value("<%= escape_javascript(render(:partial => user_id)) %>");

  2. 部分的な _user_id.html.erb を作成して、変更する値を出力しました。

今、私が行き詰まっているのは、payment_email の値を ajax 経由で create.js.erb に送信する方法がわかりません。この値を使用して、必要なユーザー ID を取得します。これどうやってするの?

4

1 に答える 1

0

jQuery Change イベントを使用できます

$(document).ready(function() {
  $( "#payment_email" ).change(function() {
    $.ajax({
      type: "POST",
      url: "/controller/action",
      data: { email: $( "#payment_email" ); }
      });
  });
});
于 2013-10-04T11:02:53.323 に答える