繁体   English   中英

如何通过jQuery提交(自动保存)时将数据添加到html表单?

[英]how can I add data to an html form when submitting (autosaving) by jQuery?

我有一个由jQuery提交的表单,用于自动保存。 这是在Ruby On Rails 3.我的模型是一个我想自动保存的帖子。 如果布尔字段(草稿)= true,则post模型适于忽略某些验证。 (如果草案为零,那么运行验证)

我使用以下代码每隔一段时间提交表单以自动保存它。

 $(document).ready(function() {
   setInterval(function() {
     $('#post_form form[data-remote]').submit();
   }, 1000*60); // 1000ms * 60s = 1m
 });

当表单通过此函数提交时,我想要包含一个变量:draft => true以某种方式忽略验证等。如何添加到此javascript来完成此操作? 或者这根本不可能?

如果我必须进入代码轨道并做另一个解决方案,请评论告诉我,我会发布相关代码。

多谢你们!

$(document).ready(function() {
   setInterval(function() {
     var draft = $('#draft');
     if(draft == null)
     {
        $('post_form').append('<input type="hidden" name="draft" id="draft" value="true" />');
       draft = $('#draft');
     }
     draft.val('true');


     $('#post_form form[data-remote]').submit();
   }, 1000*60); // 1000ms * 60s = 1m
 });

我已经更新了你的代码,我创建了隐藏的输入文本框,其值为true和name draft。

我希望这有帮助

首先, $('#post_form form[data-remote]').submit()将完成提交,用户将被发送到action页面。 你想要做的是一个AJAX帖子。

其次,您不希望每分钟再次遍历DOM(每次POST时)。 您应该将表单缓存在变量中,以便以后可以重新使用它。

这是你如何去做的:

$(document).ready(function() {

   var $form = $('#post_form form[data-remote]'),
       href = $form.attr('href');

   setInterval(function() {
      $.post(href, $form.serialize() + '&draft=true');
   }, 60000);

});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM