我对 JS 很陌生,也许这是一个非常平庸的问题,但我仍然无法弄清楚出了什么问题。我有这个简单的 html 代码:
<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')"
}
}
在这里你可以找到一个 JS Fiddle。我想做的是像处理图像一样设置 onclick 属性,使用 getElementById 然后设置他的源,所以我写了 document.getElementById('red').onclick="window.open('random page') “但由于某种我无法理解的原因,它不起作用。
问题:
1)正如您在我的代码中看到的那样,我写了一个 location.href='address' 显然不等待用户单击按钮,所以这不是一个解决方案,我怎样才能使它工作?
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')"
}
}
}
欢迎对我的代码提出任何建议。
</p>