我對JS很新,也許這是一個非常平凡的問題,但我仍然無法弄清楚什麼是錯的。我有這個簡單的HTML代碼:用javascript更改onclick值
<span>1</span>
<input id="check1" type="radio" value="a1"/>
<span>2</span>
<input id="check2" type="radio" value="b2"/>
<span>3</span>
<input id="check3" type="radio" value="c3"/>
<span>4</span>
<input id="check4" type="radio" value="a4"/>
<span>5</span>
<input id="check5" type="radio" value="b5"/>
<input id="red" type="button" value="Go" onclick=""/>
我想實現的是,基於收音機檢查更改onclick屬性。 例如,如果選中check1和check2,請轉到google.com,如果check1和check3轉到jsfiddle.net等等。所以我寫了一個簡單的JavaScript:
window.onchange = function redirect(){
if (document.getElementById('check1').checked && document.getElementById('check2').checked) {
location.href='www.google.com';
// document.getElementById('red').onclick="www.google.com"
}
else if (document.getElementById('check1').checked && document.getElementById('check3').checked) {
location.href='www.jsfiddle.net';
// document.getElementById('red').onclick="window.open('www.jsfiddle.net')"
}
}
Here你可以找到一個JS提琴。 我想要做的就是像使用圖像一樣設置onclick屬性,使用getElementById然後設置源代碼,所以我寫了document.getElementById('red')。onclick =「window.open('random page' )「但由於某些原因,我無法理解它不起作用。
問題:
1)你可以在我的代碼看,我寫了一個location.href =「地址」這顯然doen't等待用戶點擊該按鈕,所以這不是一個解決方案,我該如何做這項工作?
2)有沒有辦法讓這段代碼更具擴展性?我的意思是,在未來,如果我想添加另一個電臺,我必須手動修改代碼,並插入另一否則如果,我想到是這樣的:
var radio = document.getElementByName('radio') //not sure if this is the right getElement
for (var i=1; i<radio.lenght; i++){
if radio[i].checked{ //is this right?
for (var n=i+1; n<radio.lenght; n++){
if radio[n].checked{
document.getElementById('red').onclick="window.open('random page')"
}
}
}
任何建議,我的代碼是值得歡迎。
如果我理解正確,onclick只接受函數作爲值? –
這是如何將偵聽器添加到JS中按鈕上的點擊瀏覽器事件。分配給onclick屬性的函數將在onclick觸發時執行。 –
謝謝你的回答。 –