用一个按钮从两个选择框中选择下载文件-JavaScript
我有两个选择框,如下所示:用一个按钮从两个选择框中选择下载文件-JavaScript,javascript,button,html-select,Javascript,Button,Html Select,我有两个选择框,如下所示: <select id="one"> <option value="default">Select File</option> <option value="path/to/file1">File One</option> <option value="path/to/file2">File Two</option> <option value="p
<select id="one">
<option value="default">Select File</option>
<option value="path/to/file1">File One</option>
<option value="path/to/file2">File Two</option>
<option value="path/to/file3">File Three</option>
</select>
<select id="two">
<option value="default">Select File</option>
<option value="path/to/file4">File Four</option>
<option value="path/to/file5">File Five</option>
<option value="path/to/file6">File Six</option>
</select>
<p class="button_image">
<a onclick="download(document.getElementById("one").value)"></a>
</p>
对于一个select
框来说,这很好,但我似乎不知道如何使用相同的按钮图像。哦,是的,p.class=button_图像的背景图像是一个带有悬停效果的按钮
我之所以希望这些select
框分开,是因为它们各自代表一组文件,例如32位与64位。所以它们不能结合在一起,因为它不会与页面设计一起流动
我已经使用getElementById
在PHP中尝试了一些if/else块,但是我被卡住了。这是我尝试过的,似乎只起了部分作用:
<?php
if ('document.getElementById(\"one\")' == 'one') {
echo "<a onclick='download(document.getElementById(\"one\").value)'></a>";
}
else if ('document.getElementById(\"two\")' == 'two') {
echo "<a onclick='download(document.getElementById(\"one\").value)'></a>";
}
?>
尝试替换此:
<p class="button_image">
<a onclick="download(document.getElementById('one').value)"></a>
</p>
作为按钮的元素似乎不合适,只需使用img即可 无论如何,将第一个select与第一个选项以外的选定选项一起使用的函数可以类似于:
function getPath() {
var select;
var args = arguments;
for (var i=0, iLen=args.length; i<iLen; i++) {
select = document.getElementById(arg[i]);
if (select && select.selectedIndex > 0) {
window.location = 'http://www.mysite.com/download/' + select.value;
}
}
}
函数getPath(){
var选择;
var args=参数;
对于(变量i=0,iLen=args.length;i 0){
window.location=http://www.mysite.com/download/'+select.value;
}
}
}
上面期望第一个选项是默认选中的,因此如果选择了它,或者根本没有选择任何选项,则select的selectedIndex将分别为0或-1。通过将选定属性添加到第一个选项中,我将确保选中一个选项:
<option value="default" selected>Select File</option>
选择文件
电话是:
<img src="buttonImage.jpg" onclick="download('one', 'two');">
尽管您可能希望向select元素添加一个类,并使用GetElementsByCassName或类似工具获取它们,然后循环该集合,而不是对ID进行硬编码。如果在单击按钮之前从两个
select
框中选择一个文件,会发生什么?是的,很抱歉没有添加该文件。我意识到这个设计有缺陷。理想情况下,如果选择了一个,则另一个将重置为默认值。没有选择这两个选项。无论是一个文件还是另一个文件都是它的意思。考虑使用一个选择或单选按钮(我的偏好)。我同意<代码> A<代码>标签,我认为这是另一种方法的残余。我可能会改变这一点-谢谢。这样效果更好,但我仍然会遇到第一个优先于第二个。例如,如果第一个被选中,那么它将获胜。当选择一个选择框时,我需要弄清楚如何重置另一个选择框。在每个选择框中使用一个重置另一个选择框的onchange
处理程序。
function download(file1,file2) {
if (file1 == 'default' && file2 == 'default'){
return;
}
else if(file1 != 'default'){
window.location = 'http://www.mysite.com/download/' + file1;
}
else{
window.location = 'http://www.mysite.com/download/' + file2;
}
}
function getPath() {
var select;
var args = arguments;
for (var i=0, iLen=args.length; i<iLen; i++) {
select = document.getElementById(arg[i]);
if (select && select.selectedIndex > 0) {
window.location = 'http://www.mysite.com/download/' + select.value;
}
}
}
<option value="default" selected>Select File</option>
<img src="buttonImage.jpg" onclick="download('one', 'two');">