Я использую плагин формы jQuery с моим Rails-приложением. У меня есть форма, как это:Как использовать jQuery Form Plugin с Rails js.erb шаблоном?
<form action="/comments" id="comment_form" method="post">
<textarea cols="60" id="comment_comment" name="comment[comment]" rows="3"></textarea>
<input id="comment_submit" name="commit" type="submit" value="Add comment" />
</form>
Мой application.js файл имеет:
jQuery.ajaxSetup({
'beforeSend': function(xhr) {xhr.setRequestHeader("Accept", "text/javascript")}
});
$(document).ready(function(){
$("#comment_form").ajaxForm();
});
Мой Комментарии контроллер выглядит так:
def create
@comment = Comment.new(params[:comment])
respond_to do |wants|
if @comment.save
flash[:notice] = 'Added comment.'
wants.js
end
end
end
И у меня есть некоторые JQuery код/views/comments/create.js.erb like:
$("#comment_form).hide();
и некоторые другие вещи.
Моя проблема заключается в том, что код jQuery внутри create.js.erb никогда не происходит (т. Е. Форма не скрывается). Если я использую это в application.js вместо этого (спасибо Railscast для этого кода)
jQuery.fn.submitWithAjax = function() {
this.submit(function() {
$.post(this.action, $(this).serialize(), null, "script");
return false;
})
return this;
};
jQuery.ajaxSetup({
'beforeSend': function(xhr) {xhr.setRequestHeader("Accept", "text/javascript")}
});
$(document).ready(function(){
$("#comment_form").submitWithAjax();
});
все работает отлично. Весь код в файле create.js.erb отлично работает! Я предпочел бы использовать плагин jQuery Form, но я не понимаю, как сделать запуск кода create.js.erb. Если что-то вроде:
$("#comment_form").ajaxForm({success: function(){$("comment_form").hide()}});
тогда этот код jQuery работает. Но мне нужно запустить шаблон erb (потому что я делаю что-то вроде частичного внутри).
Спасибо за любые идеи.