Javascript 以提交方式下载
下载Javascript 以提交方式下载,javascript,jquery,ajax,submit,Javascript,Jquery,Ajax,Submit,下载 var link = document.createElement("a"); link.download = name; link.href = uri; link.click(); 在jQuerys未提交的情况下工作 但是这里 $('form').submit(function(e) { e.preventDefault(); var uri = $(this).find("input").attr("data-uri"); var name = $(th
var link = document.createElement("a");
link.download = name;
link.href = uri;
link.click();
在jQuerys未提交的情况下工作
但是这里
$('form').submit(function(e) {
e.preventDefault();
var uri = $(this).find("input").attr("data-uri");
var name = $(this).find("input").attr("data-name");
alert(uri); // Does work!
// This download does not work ...
var link = document.createElement("a");
link.download = name;
link.href = uri;
link.click();
// Download end
$.ajax({
url: 'entry.php',
type: 'POST',
data: $(this).serialize()
});
});
它不起作用。uri和名称正确
提交后是否可以创建元素
如何使下载工作正常?.click()是一个事件侦听器。我想你在找.trigger('click'))
此外,href是锚定标记的链接引用-例如,您要链接到的文件。
下载是要下载的锚标记的较新属性。在本例中,这两个值对您来说应该是相同的,因此我不确定为什么要将uri和名称作为单独的组件使用。我把两个完整的都放在下面,但是你可能想考虑一下。
此外,您正在创建一个
元素,但实际上从未将其添加到DOM中。试试这个:
$('form').submit(function(e) {
e.preventDefault();
var uri = $(this).find("input").attr("data-uri");
var name = $(this).find("input").attr("data-name");
alert(uri); // Does work!
// This download does not work ...
var link = document.createElement("a");
link.download = name;
link.href = uri;
$(document).append(link); // Add your link to the DOM
link.trigger('click'); // Trigger the click of your link
// Download end
$.ajax({
url: 'entry.php',
type: 'POST',
data: $(this).serialize()
});
});
我还建议查看.data()jquery函数以查找您的输入。似乎在这里起作用