我需要创建一个按钮,点按“加载”,然后使用用户创建的表格中的结果发出电子表格。我将代码作为链接工作,但不作为按钮。我该如何解决这个问题?
这是创建表格的脚本,并将结果从指定链接的电子表格中吐出:
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 -->
链接完全符合我的预期,但按钮却没有!
帮助?
答案 0 :(得分:1)
试试这个
<button id="downloadExcel">Download</button>
将您的链接更改为按钮。
"fnInitComplete": function(oSettings, json) {
$('#downloadExcel').click(function(){
window.location = 'http://...?ids=' + resultids.join();
})
}
将网址设置为window.location
将触发文件下载。您也可以尝试window.location.href