0

フォームを選択し、フォームだけの部分レンダリングを実行してフォームを再作成する、Railsコントローラー用のAJAX作成アクションがあります。このようにして、検証が失敗したときにエラー メッセージが表示されます。

ただし、私のテキスト フィールドの 1 つは jQuery TokenInput プラグインを使用しており、ajax 呼び出しがフォームを再描画すると、jQuery TokenInput プラグインがフォームに読み込まれなくなります。

AJAXコントローラーアクションjavascriptファイルから対応するassets/javascripts/.js.coffeeファイルの再実行をトリガーする方法はありますか?

前もって感謝します...

4

1 に答える 1

1

フォームが再描画されたら、Tokeninput スクリプトを再実行するだけです。これを行う最善の方法は、Tokeninput コマンドを関数に配置して (同じことを繰り返さないように)、フォームのレンダリング後にその関数を呼び出すことです。たとえば、トークン化したい has_many の首輪を持つ Dog モデルが必要だとします。

Dogs.js.coffee :

tokenizeDogCollars = ->
  $("#dog_collar_tokens").tokenInput "/dogs.json"
tokenizeDogCollars

create.js.erb :

<% if @dog.errors.any? -%> 
  ...
  $('#dog-form-container').empty();
  $('#dog-form-container').append('<%= j render("form") %>');
  tokenizeDogCollars();
  ...
<% else %>
  ... whatever you want to do on a successful save ...
<% end %>
于 2012-12-26T17:00:57.730 に答える