当用户从日期选择器弹出窗口中选择日期(或对此进行任何更改,无论是日期还是时间)时,我想自动保存表单。在rails中,我使用:remote => true
的表单来简单地更改截止日期属性。它只是一个字段,所以在选择日期后让用户点击“提交”按钮感觉有些过分。我目前已将其设置为在用户更新表单后使用AJAX显示更新日期,但同样,我希望这样做,而不是实际单击提交按钮。
这是我的错误:
<%= form_for todo, :remote => true, :url => update_todo_project_path, :html => {:id => "todo#{todo.id}" } do |f| %>
<%= f.hidden_field :id %>
<%= f.text_field :due %>
<%= f.submit %>
<% end %>
Javascript(只是一个外部js文件):
$('input#project_todo_due').datetimepicker({
dateFormat: 'yy-mm-dd',
timeFormat: 'hh:mm'
});
并且update_todo.js.erb:
$("#dueon<%= @todo.id%>").html("<%= raw escape_javascript(render(:partial => 'duedate')) %>");
答案 0 :(得分:3)
我要去捅它:
$('input#project_todo_due').datetimepicker({
dateFormat: 'yy-mm-dd',
timeFormat: 'hh:mm',
onClose: function(strDate, datepicker) {
// According to the docs this situation occurs when
// the dialog closes without the user making a selection
if(strDate == "") {
return;
}
// According to the docs this refers to the input
// Some digging in jquery-ujs on github make it
// look like triggering the 'submit.rails' event
// on the form will cause the normal unobtrusive
// js helpers to post the form.
// What's not clear is if the input element has the
// updated value at this point.
$(this).parent().trigger('submit.rails')
}
});
我使用的文档: