modal-dialog - 使用 Modal BS4 替换删除文件提示确认
问题描述
我尝试使用以下代码通过引导程序的模态确认来更改 dropzone 的 pront 确认:
模态:
<div class="modal inmodal fade" id="RemoveFileModal" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content animated bounceInRight">
<div class="modal-header errormdg">
<button type="button" class="close" data-dismiss="modal"><i class="fas fa-window-close text-white"></i><span class="sr-only">Close</span></button>
<h4 class="modal-title">Cuidado: Estas Intentando Remover un Archivo.</h4>
</div>
<div class="modal-body">
<p>
Por algún motivo el sistema detecto que intentaste Remover un Archivo, Ten en cuenta que el archivo removido no podrás subirlo al sistema.<br> Este aviso es para que tengas en cuenta que si aceptas el archivo que remueves no será guardado en la Aplicación.<br><br>
Presiona Aceptar para Remover el archivo y Salir de la pantalla.<br>
Presiona Cancelar para Regresar.<br>
</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-cls-error" id="outAceptar" data-dismiss="modal">Aceptar</button>
<button type="button" class="btn btn-white" data-dismiss="modal">Cancelar</button>
</div>
</div>
</div>
</div>
并使用此脚本用于 dropzone 来捕获删除文件事件并显示模式:
$('div.dropzone').each(function() {
$(this).dropzone({
autoProcessQueue: true,
url: "/",
maxFilesize: window.SIS.uploadFiles.size,
maxFiles: window.SIS.uploadFiles.max,
acceptedFiles: 'application/pdf, image/jpeg, image/jpg, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
dictDefaultMessage: "<strong>Coloque los archivos Aqui. </strong></br> (Peso Maximo 2Mb, Se Aceptan los Siguientes Formatos: jpg, pdf, xls, xlsx.)",
addRemoveLinks: true,
dictCancelUpload: 'Cancelar Subida',
dictRemoveFile: 'Quitar Archivo',
clickable: true,
init: function() {
this.on("removedfile", function(data) {
var IsRemove = false;
$('#RemoveFileModal').modal('toggle').on('click', '#outAceptar', function(e) {
IsRemove = true;
});
return IsRemove;
});
},
});
});
主要问题是,如果用户单击“aceptar”或“cancelar”,togle modal 不会停止要捕获的删除文件事件。接受和取消的西班牙语选项。
该脚本显示模态但继续在后台删除文件。
更新
我试过这个但不工作:
removedfile: function(file) {
$('#RemoveFileModal').modal('toggle').on('click', '#outAceptar', function(e) {
//myDropzone.removeFile(file);
return true;
});
$('#RemoveFileModal').modal('toggle').on('click', '#outCancelar', function(e) {
return false;
});
},
解决方案
使用删除文件事件是一个好方法:
// Called whenever a file is removed.
removedfile: function removedfile(file) {
$('#yourModalId').modal({
backdrop: 'static',
keyboard: false
})
$('#yourModalDeleteButton').click({file: file, self: this}, removeFile);
function removeFile(event)
{
$('#yourModalId').modal('hide');
// user confirmed , remove your file
}
},
如您所见,我正在将文件对象和this传递给我的函数,因为您至少需要文件对象来删除文件。(也许这不是这取决于您如何处理文件删除)。
推荐阅读
- android - AutoCompleteTextView 将宽度设置为最长的适配器项
- docker - 从 docker 内部启动无服务器 docker 容器兄弟
- google-chrome - HTML MediaRecorder 录制滞后于 1080p 流
- javascript - 将此代码放在我的角度项目中的哪里?
- javascript - 如何避免向 Firebase 的“杂项”频道发送通知?
- c# - 如何在 DropDownlist 中更改颜色
- python - 合并两个数据框并减少列数
- selenium - 处理评分小部件
- angularjs - Chrome 80 聚合物类型错误:无法读取 null 的属性“__proto__”
- c# - C# 中的 Azure Functions 模型绑定问题