我有一个rails4应用程序。我正在尝试使用内置的AJAX机制(respond_to format.js和create.js.erb)进行远程提交,但在我提交表单之前,我想通过js稍微更改代码以将正确的UTC时间保存到db 。
一切正常,直到最后一行,因此默认行为被认可,时间用momentjs正确格式化,但表格最终没有提交。这个$('#new-task-modal-form').submit();
行有问题吗?我还能错过什么?
形式
<%= form_for([current_user, @task], remote: true, id: "new-task-modal-form") do |f| %>
....
....
<%= f.submit "Create Task", class: 'btn btn-primary new-task-submit', "data-sid" => current_user.id, "data-rip" => :executor_id %>
JS
var ready = function() {
$('.new-task-submit').on('click', function (e){
e.preventDefault();
var localMoment = moment($('.new-task-deadline').val());
$('.new-task-deadline').val(localMoment.toISOString());
$('#new-task-modal-form').submit();
});
$(document).ready(ready);
$(document).on("page:load", ready);
我也是这样尝试的,所以偶然不能成为问题:
var ready = function() {
$('.new-task-submit').on('click', function (e){
e.preventDefault();
$('#new-task-modal-form').submit();
});
$(document).ready(ready);
$(document).on("page:load", ready);
答案 0 :(得分:1)
这是一个引导模式问题。这很奇怪,但我不得不在模板上调用提交函数而不是在轨道表单上:$('#newtask').submit();
。
<%= form_for([current_user, @task], remote: true, class: "new-task-modal-form") do |f| %>
<div class="modal fade" id="newtask" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
答案 1 :(得分:0)
试试这个:
$('.new-task-submit').on('submit', function (e){
e.preventDefault();
var localMoment = moment($('.new-task-deadline').val());
$('.new-task-deadline').val(localMoment.toISOString());
this.submit();
});
归功于lonesomeday https://stackoverflow.com/a/4517383/2898941