0

Rails 3.2 で、以前 ajax でこのフォームに追加された選択フィールドを持つフォームを送信しようとしています。このような:

  1. 最初のフォーム (has :remote => true) は js.erb で応答し、(とりわけ) 次のように別のフォーム内に選択フィールドをレンダリングします (選択フィールドは部分的なものです):

    $('#target_variables_div').html("<%= j render(:partial => 'logged_data/select_vars', :locals => { :vars => @vars, :date => @date }) %>") 
    
  2. この「別の」フォーム ( もある:remote => true) には、より多くのフォーム フィールドがありますが、これらはページの読み込み時に静的に読み込まれます。

問題は、この「別の」フォームを送信すると、以前にパーシャルでロードされた選択フィールドを除いて、静的パラメーターのみが送信されることです。

jQueryと関係があることはわかっていますがliveon完全なフォームを送信することはまだできません...

助けてくれてありがとう!

4

2 に答える 2

0

Jqueryliveとメソッドは、最初の読み込み時には存在しないボタンなど、ページに on新しく追加された要素をリッスンするためのものですが、動的に追加され、次のようにイベントを関連付ける必要があります。dom

$('#dinamyc_button').on('click', function() {});

あなたの場合、選択値を手動で設定する必要があると思います。フォームにリスナーを作成してみてください。送信時に選択値がデータに追加され、サーバーに渡されます。

$('#your_form').submit(function() {
  var formData = $(this).serialize();
  var selectValue = $('#your_select').val();
  formData['select'] = selectValue; // or formData.select = selectValue;
  $.ajax({
    type: 'POST',
    url: whatever,
    data: formData
  })
});

これは洗練されていない例ですが、アイデアはわかりました。

于 2013-02-27T12:05:27.980 に答える
0

MurifoX のおかげで、ようやくフォームを完全に送信することができました。以前は、DOM がロードされた後に送信ブロックを実行していました ( jquery ->CoffeeScript ファイルのブロック内)。結果のCoffeeScriptは次のとおりです。

$('#generate-button').on "click", (e) ->
  e.preventDefault()
  formData = $(this).parents("form").serialize()
  selectValue = $('#select_vars_field').val()
  $.ajax
    type: 'POST',
    url: '/logged_data/get_chart',
    data: formData + "&vars=" + selectValue 
于 2013-02-27T13:32:47.597 に答える