我一直在尝试使用javascript下载exe文件,我以前使用单选按钮做了但现在我不知道我应该如何下载。该场景是有3个复选框admin,security,security1和我应该检查在点击下载按钮之后是否选择了哪个复选框组合,需要下载不同的zip文件。
<button onclick="
if(!this.form.admin.checked&&!this.form.security.checked&&!this.form.security1.checked)
{
document.getElementById('errfn').innerHTML='Make atleast one selection';
}
else if (this.form.admin.checked&&this.form.security.checked&&this.form.security1.checked == 1)
{
alert('security32 and admin and security64');
}
else if (this.form.security.checked&&this.form.security1.checked == 1)
{
alert('security64 and security32');
}
else if (this.form.admin.checked&&this.form.security.checked == 1)
{
alert('security32 and admin');
}
else if (this.form.admin.checked&&this.form.security1.checked == 1)
{
alert('security64 and admin');
}
else if (this.form.admin.checked == 1)
{
alert('admin is checked');
}
else if (this.form.security.checked == 1)
{
alert('security 32 is checked');
}
else if (this.form.security1.checked == 1)
{
alert('security64 is checked');
}
return false;
">Submit</button>
我已经通过location.href替换了警报=&#34; images / download.exe&#34 ;;检查是否没有运气下载
用于单选按钮的代码是
<input value="1" type="radio" id="1" name="formselector" onclick="displayForm(this)">
function displayForm(c)
{
var radios = document.getElementById("1").value;
location.href="images/WismanWeb 32 bit.exe";
}
答案 0 :(得分:0)
首先清理你的代码。
<强> HTML:强>
<button onclick="myMethod()">Submit</button>
<强> JS:强>
myMethod = function () {
if (!this.form.admin.checked && !this.form.security.checked && !this.form.security1.checked) {
document.getElementById('errfn').innerHTML = 'Make atleast one selection';
} else if (this.form.admin.checked && this.form.security.checked && this.form.security1.checked == 1) {
alert('security32 and admin and security64');
} else if (this.form.security.checked && this.form.security1.checked == 1) {
alert('security64 and security32');
} else if (this.form.admin.checked && this.form.security.checked == 1) {
alert('security32 and admin');
} else if (this.form.admin.checked && this.form.security1.checked == 1) {
alert('security64 and admin');
} else if (this.form.admin.checked == 1) {
alert('admin is checked');
} else if (this.form.security.checked == 1) {
alert('security 32 is checked');
} else if (this.form.security1.checked == 1) {
alert('security64 is checked');
}
return false;
}
答案 1 :(得分:0)
你真的应该通过定义一个函数来清理代码,然后从按钮调用它(就像你用单选按钮那样),而不是直接在标记中粘贴那个长例程。当你不得不重新访问这段代码来更新它时,你会感谢自己。
总体问题是您如何引用复选框。您有this.form.admin
,它应该是this.document.form[0].admin
。在上下文中,this
关键字是window
对象,因此您必须指定.document
才能访问该文档,然后访问forms
数组,其中您的表单可能是第一个元素(forms[0]
)。在您正确引用表单后,您可以按名称(.admin
,.security
,.security1
)访问您的复选框。
另外,在这种情况下,并不重要(因为您没有使用id
属性),而是按照规范id
attributes must begin with a letter。
工作演示:http://jsfiddle.net/8VU7L/2/
也就是说,您应该通过id
而不是DOM导航到form
元素来访问您的输入。它不那么脆弱,更精确,更容易阅读。
另外,您可能需要阅读Best Practice: Access form elements by HTML id or name attribute?。
工作演示:http://jsfiddle.net/8VU7L/
最后,对于这种选择,使用位域(或者更确切地说,等效的JavaScript)可能会使代码更具可读性。除了可读性之外,使用这种技术交换URL的消息也很容易。