1
我实现了jQuery的可拖放/可拖拽的笔记列表,以便对它们进行分层次排序,这在当时工作正常,但我觉得自己做得太多了。在创建手动Ajax请求时使用jquery-rails(ujs)
整个csrf
部分手动发送请求,我也手动评估响应,这是ujs提供的功能。有没有一种方法可以无缝地整合,以便我可以使用ujs库的优点?
我想到的一个可能的解决方案是将整个可拖动的元素包装成<form data-remote="true">
,但是这感觉有点ha。。
$(function()
{
$('#notes-container .note').draggable();
$('#notes-container .note').droppable({
drop: function(event, ui)
{
$.ajax({
type: 'PUT',
url: ui.draggable.find('form').attr('action'),
data: {
authenticity_token: $('meta[name="csrf-token"]').attr('content'),
task: {
parent_id: $(this).data('id')
}
}
});
}
});
});
这并不是什么黑客攻击,你只需要为整个表单的处理提交AJAX。我做了很多。我有几十个AJAX动作的remote => true的表单。但要小心,我有一小组用户(如277 MAX),我不关心他们必须启用javascript来使用我的网站。如果您担心对禁用JavaScript的用户不显眼或担心,我不是最好听的。 – RadBrad
,因为这应该是一个小小的web应用程序,我觉得网站应该不断发展,并且不支持,我不会给用户使用任何东西,例如IE <8等。我的目标是保持代码干净,干爽,而不是向下 - 兼容十年;-) – pduersteler