[英]Jquery to Download Result File
我需要创建一个单击时显示“正在加载”的按钮,然后使用用户创建的表格中的结果弹出电子表格。 我将代码用作链接,但不用作按钮。 我该如何解决?
这是用于创建表并将脚本从指定链接发送到电子表格中的脚本:
makeTable = function(query) {
var q = encodeURIComponent(query);
$('#example').dataTable({
"oLanguage": {"sSearch": "Filter results:"},
"bProcessing": true,
"bDestroy":true,
"sAjaxSource": $.sprintf('http://...?q=%s',q),
"aoColumns":[
{"mData":"id", "sWidth": "20px", "sTitle":"ID"},
{"mData":"chamber", "sWidth": "10px", "sTitle":"Chamber"},
{"mData":"date", "sWidth": "85px", "sTitle":"Date"},
{"mData":"yea","sTitle":"Vote","sWidth":"80px"},
{"mData":"descriptionShort", "sWidth": "200px","sTitle":"Description"}
],
"fnRowCallback": function( nRow, aData, iDisplayIndex ) {
$('td:eq(0)', nRow).html($.sprintf('<a onclick="setviz(\'%s\');setview(\'visualize\')">%s</a>',aData['id'],aData['id'])).attr("title", "Click to explore this vote");
$('td:eq(3)', nRow).html($.sprintf('%s-%s', aData['yea'], aData['no']));
$('td:eq(4)', nRow).attr("title",aData['description']);
resultids.push(aData['id']); // build vector vote ids (nothing to do with the table)
return nRow;
},
"fnInitComplete": function(oSettings, json) {
$('#downloadExcel').attr('href','http://...?ids=' + resultids.join()); // Make download link
}
});
}
在HTML的主体中,我有以下代码:
<div id='results'>
<div class="jumbotron">
<div class="container special">
<div class="table">
<table id="example" class="table table-striped"></table><br/>
<a id="downloadExcel" href="">Download</a><br></br>
<a onclick="oper_executar('downloadExcel')" class="btn btn-primary btn-lg" role="button">Download</a><br></br>
</div><!-- table -->
</div><!-- container -->
</div><!-- jumbotron -->
</div><!-- results -->
该链接完全符合我的预期,但按钮不起作用!
救命?
尝试这个
<button id="downloadExcel">Download</button>
更改链接到按钮。
"fnInitComplete": function(oSettings, json) {
$('#downloadExcel').click(function(){
window.location = 'http://...?ids=' + resultids.join();
})
}
将URL设置为window.location
将触发文件下载。 您也可以尝试window.location.href
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.