- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
当我通过 blueimp 上传脚本上传文件时,文件信息连同上传时间戳一起存储在数据表中。现在,当我编辑表单时,文件再次出现。
我想做一件简单的事情...如果当前时间戳小于文件时间戳(之前上传),那么删除按钮将被禁用。
因此,我需要使用 Ajax 来验证它。但在 <script type='text/x-tmpl'></script>
中似乎没有任何作用。标签。
我不知道 x-tmpl 是什么。我在网上搜索了一下,发现它是某种模板。这些 x-tmpl 可以使用 javascript 吗?
我想做如下的事情:
<script id="template-download" type="text/x-tmpl">
{% if (file.deleteUrl) { %}
</script>
<script type="text/javascript">
var checkAvailability = $.ajax({
type: 'GET',
url: "request.php?file="+{% file.deleteUrl %},
dataType: 'html',
context: document.body,
global: false,
async:false,
success: function(data) {
return data;
}
}).responseText;
if(!checkAvailability){
<button class="btn btn-danger btn-xs delete" data-type="{%=file.deleteType%}" data-url="{%=file.deleteUrl%}"{% if (file.deleteWithCredentials) { %} data-xhr-fields='{"withCredentials":true}'{% } %} DISABLED>
<i class="glyphicon glyphicon-trash"></i>
<span>Delete</span>
</button>
} else{
<button class="btn btn-danger btn-xs delete" data-type="{%=file.deleteType%}" data-url="{%=file.deleteUrl%}"{% if (file.deleteWithCredentials) { %} data-xhr-fields='{"withCredentials":true}'{% } %}>
<i class="glyphicon glyphicon-trash"></i>
<span>Delete</span>
</button>
}
</script>
<script id="template-download" type="text/x-tmpl">
{% }
关于如何在此 x-tmpl
中使用 AJAX 的任何帮助或建议用于时间戳验证目的的标签?
最佳答案
我知道那是 2 年前的事了,但我一直在使用该插件,实际上我就是这样做的:
在 html 代码中,您有一个包含 contex 目标的表,其中 de 文件显示在"file"类中:
<table role="presentation" class="table table-striped">
<tbody class="files"> <!-- files are displayed right here -->
</tbody>
</table>
脚本 text/x-tmpl 只是表格行的模板,它将接收内容并将添加到带有 .files 类的 tbody
所以在 jquery 文件 (main.js) 中加载现有文件时,在 ajax 之前,只需像这样清理上下文目标:
$('#fileupload').addClass('fileupload-processing');
//clean the context target before load new files
$('.files').html('');
$.ajax({
url: $('#fileupload').fileupload('option', 'url'),
dataType: 'json',
context: $('#fileupload')[0]
}).always(function () {
$(this).removeClass('fileupload-processing');
}).done(function (result) {
$(this).fileupload('option', 'done').call(this, $.Event('done'), {result: result});
});
但您也可以使用 jquery 选项来创建模板而不是 x-tmpl:
$('#fileupload').fileupload({
filesContainer: $('tbody.files'),
uploadTemplateId: null,
downloadTemplateId: null,
uploadTemplate: function (o) {
var rows = $();
$.each(o.files, function (index, file) {
var row = $('<tr class="template-upload fade">' +
'<td><span class="preview"></span></td>' +
'<td><p class="name"></p>' +
'<strong class="error text-danger"></strong>' +
'</td>' +
'<td><p class="size">Processando...</p>' +
'<div class="progress progress-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0">' +
'<div class="progress-bar progress-bar-success" style="width:0%;"></div>' +
'</div>' +
'</td>' +
'<td>' +
(!index && !o.options.autoUpload ?
'<button class="btn btn-primary start" disabled>' +
'<i class="fas fa-cloud-upload-alt"></i>' +
'<span>Upload</span>' +
'</button>' : '') +
(!index ? '<button class="btn btn-warning cancel">' +
'<i class="fas fa-ban"></i>' +
'<span>Cancelar</span>' +
'</button>' : '') +
'</td>' +
'</tr>');
row.find('.name').text(file.name);
row.find('.size').text(o.formatFileSize(file.size));
if (file.error) {
row.find('.error').text(file.error);
}
rows = rows.add(row);
});
return rows;
},
downloadTemplate: function (o) {
var rows = $();
$.each(o.files, function (index, file) {
var row = $('<tr class="template-download fade">' +
'<td><span class="preview"></span></td>' +
'<td><p class="name"></p>' +
(file.error ? '<div><span class="badge badge-danger">Erro</span></div>' : '') +
'</td>' +
'<td><span class="size"></span></td>' +
'<td>' +
(file.deleteUrl ? '<button class="btn btn-danger delete">' +
'<i class="fas fa-trash-alt"></i>' +
'<span>Excluir</span>' +
'</button>' +
'<input type="checkbox" name="delete" value="1" class="toggle">' : '<button class="btn btn-warning cancel">' +
'<i class="fas fa-ban"></i>' +
'<span>Cancelar</span>' +
'</button>') +
'</td>' +
'</tr>');
row.find('.size').text(o.formatFileSize(file.size));
if (file.error) {
row.find('.name').text(file.name);
row.find('.error').text(file.error);
} else {
row.find('.name').append($('<a></a>').text(file.name));
if (file.thumbnailUrl) {
row.find('.preview').append(
$('<a></a>').append(
$('<img>').prop('src', file.thumbnailUrl)
)
);
}
row.find('a')
.attr('data-gallery', '')
.prop('href', file.url);
row.find('button.delete')
.attr('data-type', file.deleteType)
.attr('data-url', file.deleteUrl);
}
rows = rows.add(row);
});
return rows;
}
});
关于javascript - Blueimp - 禁用以前上传的图像的删除按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31577944/
我是 firebase 的新手,我正在尝试分页查询。我喜欢有一个“下一个”和“上一个”按钮。我的下一个按钮工作正常,我的问题是单击上一个 引用:https://firebase.google.com/
抱歉,标题这么蹩脚,但我只是不知道该放什么,希望你能理解。另外,我不知道以前是否有人问过类似的问题,因为我不知道合适的关键字 - 因此也无法用谷歌搜索。 基本上...在查看preg_match_all
我想在 TFS 中 check out 一个检入文件的先前版本。我可以轻松获得特定文件的变更集 ID 列表,但无法弄清楚如何 checkout 以前的版本。 我目前的代码: var workspace
我想使用 @FunctionalInterface来 self 代码中的 Java 8,但我希望能够将生成的类文件与 Java 6 一起使用。我认为我应该将源版本设为 1.8 , 目标版本为 1.6
自从 versions 被删除以来,我一直无法找到安装以前版本软件的方法。命令并点击 Homebrew。我在 2008 Mac Pro (3,1) 上运行 macOS 10.14.3 (Mojave)
当我开始当前的项目时,App Store 中已经有一个应用程序。此应用程序仅适用于 iPhone。 我的第一个任务是测试和构建一个也可以在 iPod Touch 上运行的版本。 大约 3 周前,App
我在 GitHub 上有一个曾经是 fork 的 repo,但现在不是了,因为我已经删除了原始项目的任何痕迹并开始了一个同名的新项目。 但是,GitHub 仍然表示该项目是 fork 的。有什么方法可
我是一名优秀的程序员,十分优秀!