2013-07-05 103 views
3

我一直在嘗試很多下載使用JavaScript的exe文件,我已經做過使用單選按鈕,但現在我沒有任何想法應該如何下載。場景是有3個複選框管理員,安全性,安全性1,我應該檢查是否選擇了複選框組合後點擊下載按鈕不同的zip文件需要下載。javascript下載鏈接不工作

<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 = 「圖像/ download.exe」 代替警報;檢查是否是過得去沒有運氣

的代碼,將努力爲單選按鈕下載是

<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

而不是簡單地SO註冊併發布提問你應該至少_try_搜索相關的東西。這裏有幾十個問題可以回答你需要的東西。 – Joum

+0

@Ambily避免以數字開頭'id'名稱。 – Praveen

+0

@Ambily發佈你的表單的HTML代碼 – Praveen

回答

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; 
} 
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輸出消息。

工作演示:http://jsfiddle.net/8VU7L/1/