0

我有一个用于 Rails 控制器的 AJAX 创建操作,它将选择表单并通过仅渲染表单的一部分来重新创建它。这样,验证失败时就会显示错误消息。

但是,我的文本字段之一是使用 jQuery TokenInput 插件,当 ajax 调用重绘表单时,jQuery TokenInput 插件不再加载到表单上。

有什么方法可以触发从 AJAX 控制器操作 javascript 文件重新运行相应的 assets/javascripts/.js.coffee 文件?

提前致谢...

4

1 回答 1

1

重新绘制表单后,您只需要重新运行您的 Tokeninput 脚本。最好的方法是将您的 Tokeninput 命令放入一个函数中(这样您就不会重复自己),然后在表单渲染后调用该函数。例如,假设您想要一个 Dog 模型,其中包含您想要标记化的多个项圈:

dog.js.coffee

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

创建.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 回答