我有问题。当表单验证失败时,我需要调用javascript函数。 我想这样做。这是我在comment_controller中的创建操作。
def create
p params
@comment = parent.comments.build(params[:comment].merge(:ip => request.remote_ip))
if @comment.save
redirect_to @page.url, :notice => "grats"
else
@country = @page.country
@city = @page.city
respond_to do |format|
format.html { render :template => "pages/show" }
format.js { render "pages/show" }
end
end
end
和pages / show.js.erb有代码
$('.main').fadeOut(5000);
但它不起作用。我尝试了另一个js代码,但它也没有用。我做错了什么?
答案 0 :(得分:0)
你尝试的其他js代码是什么?
最简单的事情应该是:
alert("foo");
是否存在类'main'的html元素? (查看源代码)
您的回复是否实际呈现了show.js.erb文件?您的服务器日志会告诉您。
Rendered portal/cart_items/update.js.erb (38.4ms)
Completed 200 OK in 650ms (Views: 51.3ms | ActiveRecord: 6.5ms)
第一行是ajax响应的典型行。
FireBug可以帮助您查看服务器端发生的情况。
答案 1 :(得分:-1)
我想您想重定向到您尝试将评论添加到的页面?
如果是,请尝试
else
@country = @page.country
@city = @page.city
flash[:errors] = "Your error message..."
redirect_to @page
end
虽然我建议在客户端使用javascript进行基本验证,然后才能更容易地显示错误。