我想通过单击提交标记来加载模式对话框。但是当我点击按钮时,它直接转到页面而不转到rjs文件并且没有渲染部分。 以下是我的代码。
<span style="text-align: right">
<% form_tag "/calendar/dia_cal_view" do %>
<%= collection_select("event", "trainer_id", @trainers , :id, :name, {:prompt => true}) %>
<%= submit_tag "search" %>
<%end%>
</span>
控制器代码:
def dia_cal_view
@month = (params[:month] || (Time.zone || Time).now.month).to_i
@year = (params[:year] || (Time.zone || Time).now.year).to_i
@shown_month = Date.civil(@year, @month)
@trainers=Trainer.all
@first_day_of_week = 1
if session[:dia_Serach].nil?
if (defined? (params[:event][:trainer_id]))
session[:dia_Serach]=(params[:event][:trainer_id])
#@@id=(params[:event][:trainer_id])
@event_strips = Event.event_strips_for_month(@shown_month, @first_day_of_week, :conditions=>["trainer_id = ?",session[:dia_Serach]])
else
@event_strips = Event.event_strips_for_month(@shown_month, @first_day_of_week)
end
else
@event_strips = Event.event_strips_for_month(@shown_month, @first_day_of_week, :conditions=>["trainer_id = ?",session[:dia_Serach]])
end
end
dia_cal_view.js.rjs
page.replace_html 'search_result', :partial => 'cal_view'
page<< "$j ('#search_result_dialog').dialog({
title: 'calendar',
modal: true,
width: 500,
height: 500,
close: function(event, ui) { $j ('#search_result_dialog').dialog('destroy') }
});"
_cal_view.html.erb
<%= stylesheet_link_tag "event_calendar" %>
<%= event_calendar %>
问题是rjs文件不起作用。它没有去rjs文件。我该怎么办呢?请帮助我..
答案 0 :(得分:1)
首先,您的表单是作为html提交的,而不是作为rjs请求提交的。 您首先需要将其更改为rjs请求,更改此行
<% form_tag "/calendar/dia_cal_view" do %>
使用
remote_form_tag
或选项
remote = true
取决于您的导轨版本
它应该工作