Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 以提交方式下载_Javascript_Jquery_Ajax_Submit - Fatal编程技术网

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函数以查找您的输入。

似乎在这里起作用