我想保存在rails中的窗体中有很多字段的数据。实际上,我担心当我向表单填充数据时,这些数据可能会意外丢失,所以我想在文本字段失去焦点后逐一保存这些数据。我想知道天气有没有任何宝石或方法来做到这一点。保存数据立即失去焦点后在rails中的文本域
请给我一些建议。
提前致谢。
我想保存在rails中的窗体中有很多字段的数据。实际上,我担心当我向表单填充数据时,这些数据可能会意外丢失,所以我想在文本字段失去焦点后逐一保存这些数据。我想知道天气有没有任何宝石或方法来做到这一点。保存数据立即失去焦点后在rails中的文本域
请给我一些建议。
提前致谢。
要发送新数据到服务器,您不需要任何Gem。你可以简单地使用jQuery(当然你可以使用gem for jQuery)。只需将更新代码挂接到您的字段的模糊事件。
$(document).on('blur', 'input[type=text]', function(e){
post_data = {}; //prepare your data here
$.post(UPDATE_URL, post_data, function(response_data){
console.log(data)
})
})
现在,当你编辑的文本字段(您可以在查询中添加其他字段,如果你想),将更新后的数据发送到服务器。您应该放入UPDATE_URL以便您可以使用它。但是,您还需要csrf_token_name和用于发送发布请求的值。将这些添加到post_data。如果你找不到,我可能会帮助你。
我不知道怎么回事,帮助引导我请! – hengsokly
你进步多远?你能否至少提出要求?如果不是,请先做。当服务器拒绝您的请求时(由于缺少csrf),我可以为您提供。 – HungryCoder
使用jQuery模糊函数和@Rab Nawaz说的,AJAX提交数据。
Here是模糊的工作示例,一个explanation和documentation
因此,像:
$("input").blur(function(){
$("form.form_class").submit();
});
只要确保表格设置正确的AJAX。
或者如果你正在寻找一个宝石,你可以试试这个one。从未使用过它,但看起来很酷。希望能帮助到你。
Ajax就是答案。但想想表现。如果在每个属性失去焦点后发送请求,它将向数据库和服务器发送多个请求。
让我们试试Sisyphus jquery。它自动将数据保存在本地。
http://coding.smashingmagazine.com/2011/12/05/sisyphus-js-client-side-drafts-and-more/
使用AJAX来保存数据 – Rab