RubyonRails和jquery日期选择器
我对rails几乎没有经验,我正在尝试在我的rails应用程序中使用jQueryDatePicker 我的应用程序有多个子任务,这些子任务都有与之关联的模式,我在这些模式上有datepicker字段 我想要的是,当我选择一个日期时,应该向我的控制器发出一个ajax调用,它应该将所选日期保存在我的数据库中。 然后在保存时,我通过ajax刷新我的页面 这是密码 这里的页脚是模式页脚,我刚刚为它创建了一个不同的部分,这样我可以在保存日期后刷新它,以便所选日期在这里得到反映 /_footer.html.erb/ /UpdatedTestart.js.erb/ 这是我的解决办法RubyonRails和jquery日期选择器,jquery,ruby-on-rails,datepicker,Jquery,Ruby On Rails,Datepicker,我对rails几乎没有经验,我正在尝试在我的rails应用程序中使用jQueryDatePicker 我的应用程序有多个子任务,这些子任务都有与之关联的模式,我在这些模式上有datepicker字段 我想要的是,当我选择一个日期时,应该向我的控制器发出一个ajax调用,它应该将所选日期保存在我的数据库中。 然后在保存时,我通过ajax刷新我的页面 这是密码 这里的页脚是模式页脚,我刚刚为它创建了一个不同的部分,这样我可以在保存日期后刷新它,以便所选日期在这里得到反映 /_footer.html.
1.First i removed the different action which i made for updatedatestart and updatedateend.Instead now i am using the same update method provided by ruby for both of them.
/*subtask_controller.rb*/
def update
@subtask=Subtask.find(params[:id])
#@task=@subtask.task
#@subtask.description=params[:subtask][:description]
respond_to do |format|
#if @subtask.update_attribute(:description,params[:subtask][:description])
if @subtask.update_attributes(params[:subtask])
format.html{redirect_to @project}
format.js
else
render new
end
end
My_footer.html.erb文件
<div class="row" id="footer_<%=subtask.id%>">
<div class="col-md-5" style="margin-bottom:-20px;float:left;">
<a class="col-md-12 col-xs-12 btn btn-success" style="border-bottom-left-radius:0px;border-bottom-right-radius:0px;">Start Date
</a>
<%=form_for subtask,:remote=>:true,:method => :put do |f| %>
<%=f.hidden_field :name%>
<%= f.hidden_field :description,rows:'5',cols:'12',:class=>'myarea'%>
<%=f.hidden_field :task_id%>
<%=f.text_field :start_date,:class => "datepicker_#{subtask.id} form-control",:id=>"datepickerstart_#{subtask.id}",:style=> "border-top-left-radius:0px;border-top-right-radius:0px;"%>
<%=f.hidden_field :end_date%>
<%end%>
</div>
<div class="col-md-5" style="margin-bottom:-20px;float:right;">
<a class="col-md-12 col-xs-12 btn btn-danger"style="border-bottom-left-radius:0px;border-bottom-right-radius:0px;">End Date
</a>
<%=form_for subtask,:remote=>:true,:method => :put do |f| %>
<%=f.hidden_field :name%>
<%= f.hidden_field :description,rows:'5',cols:'12',:class=>'myarea'%>
<%=f.hidden_field :task_id%>
<%=f.text_field :end_date,:class => "datepicker_#{subtask.id} form-control",:id=>"datepickerend_#{subtask.id}",:style=> "border-top-left-radius:0px;border-top-right-radius:0px;"%>
<%=f.hidden_field :start_date%>
<%end%>
</div>
<script>
$(function(){
$('.datepicker_<%=subtask.id%>').datepicker({
onClose: function(strDate, datepicker) {
if(strDate == "") {
return;
}
$(this).parent().trigger('submit.rails')
}
});
});
</script>
</div>
开始日期
:true,:method=>:put do | f |%>
“myarea%”
“datepicker_35;{subtask.id}表单控件”,:id=>“datepickerstart_35;{subtask.id}”,:style=>“边框左上半径:0px;边框右上半径:0px;”%>
结束日期
:true,:method=>:put do | f |%>
“myarea%”
“datepicker_35;{subtask.id}表单控件”,:id=>“datepickerend_35;{subtask.id}”,:style=>“边框左上半径:0px;边框右上半径:0px;”%>
$(函数(){
$('.datepicker_').datepicker({
onClose:函数(strDate、日期选择器){
如果(标准日期==“”){
返回;
}
$(this.parent().trigger('submit.rails'))
}
});
});
就是这样,这个解决方案对我很有效。尝试使用(您可能可以消除控制器参数)而不是表单标签
:
<%= form_for(subtask, {:action => 'updateDatestart'},:remote=>'true') do |f| %>
<%= f.text_field :start_date, :class => "dateFilter form-control datepickerstart_#{subtask.id}"
<% end %>
'updatedTestart'},:remote=>'true')do | f |%>
“dateFilter表单控件datepickerstart_35;{subtask.id}”
助手的表单_将读取记录的属性。您还将为块使用变量f
,并使用text\u字段
辅助对象,而不是text\u字段标记
/*Solution that worked for me*/
1.First i removed the different action which i made for updatedatestart and updatedateend.Instead now i am using the same update method provided by ruby for both of them.
/*subtask_controller.rb*/
def update
@subtask=Subtask.find(params[:id])
#@task=@subtask.task
#@subtask.description=params[:subtask][:description]
respond_to do |format|
#if @subtask.update_attribute(:description,params[:subtask][:description])
if @subtask.update_attributes(params[:subtask])
format.html{redirect_to @project}
format.js
else
render new
end
end
<div class="row" id="footer_<%=subtask.id%>">
<div class="col-md-5" style="margin-bottom:-20px;float:left;">
<a class="col-md-12 col-xs-12 btn btn-success" style="border-bottom-left-radius:0px;border-bottom-right-radius:0px;">Start Date
</a>
<%=form_for subtask,:remote=>:true,:method => :put do |f| %>
<%=f.hidden_field :name%>
<%= f.hidden_field :description,rows:'5',cols:'12',:class=>'myarea'%>
<%=f.hidden_field :task_id%>
<%=f.text_field :start_date,:class => "datepicker_#{subtask.id} form-control",:id=>"datepickerstart_#{subtask.id}",:style=> "border-top-left-radius:0px;border-top-right-radius:0px;"%>
<%=f.hidden_field :end_date%>
<%end%>
</div>
<div class="col-md-5" style="margin-bottom:-20px;float:right;">
<a class="col-md-12 col-xs-12 btn btn-danger"style="border-bottom-left-radius:0px;border-bottom-right-radius:0px;">End Date
</a>
<%=form_for subtask,:remote=>:true,:method => :put do |f| %>
<%=f.hidden_field :name%>
<%= f.hidden_field :description,rows:'5',cols:'12',:class=>'myarea'%>
<%=f.hidden_field :task_id%>
<%=f.text_field :end_date,:class => "datepicker_#{subtask.id} form-control",:id=>"datepickerend_#{subtask.id}",:style=> "border-top-left-radius:0px;border-top-right-radius:0px;"%>
<%=f.hidden_field :start_date%>
<%end%>
</div>
<script>
$(function(){
$('.datepicker_<%=subtask.id%>').datepicker({
onClose: function(strDate, datepicker) {
if(strDate == "") {
return;
}
$(this).parent().trigger('submit.rails')
}
});
});
</script>
</div>
<%= form_for(subtask, {:action => 'updateDatestart'},:remote=>'true') do |f| %>
<%= f.text_field :start_date, :class => "dateFilter form-control datepickerstart_#{subtask.id}"
<% end %>