我是一个非常糟糕的 Js 编码器,目前正在学习。虽然我必须探测我想修复。
我的页面上有一个 Dropzone 片段,其本地设置如下所示:
var AUTH_TOKEN=$('meta[name="csrf-token"]').attr('content');
Dropzone.autoDiscover = false;
var myDropzone = new Dropzone("div#mydropzone",{
url: "<%= photographe_photographephotos_path(@photographe.hashed_id) %>",
// url: "<%= photographe_path(@photographe.hashed_id) %>",
// method: "patch",
autoProcessQueue: false,
autoDiscover: false,
uploadMultiple: true,
addRemoveLinks: true,
// clickable: false,
parallelUploads: <%= @slots_libres %>,
maxFilesize: 5,
maxFiles: <%= @slots_libres %>,
acceptedFiles: 'image/jpg, image/jpeg, image/png',
params:{
'authenticity_token': AUTH_TOKEN
},
successmultiple: function(data,response){
$('#msgBoard').append(response.message).addClass("alert alert-success");
$('#msgBoard').delay(2000).fadeOut();
$('#fileslist').val(response.filesList);
$('#photographedit').off('submit').submit();
}
});
$('#photographedit').submit(function(e){
if(myDropzone.getQueuedFiles().length > 0){
e.preventDefault();
myDropzone.processQueue();
}
});
它运作良好。
它允许将图像上传到一定的限制。这个限制是通过这条线实现的:
maxFiles: <%= @slots_libres %>,
@slots_libres
是可能上传的图片数量(用 ruby 计算)。此服务器端值仅在 html/Js 中显示为纯文本,例如:
maxFiles: 6,
现在这是我的问题:
用户可以通过 Ajax 即时删除图片。如果不重新加载页面maxFiles
值,则永远不会更改,然后不允许上传一张额外的图片。
而且我不知道应该在上面的 Js 代码中添加什么 Javascript 才能改变这个值?(我知道如何通过 Ajax 操作 DOM,但是更改当前正在运行的函数是我还不知道该怎么做的事情......)