我正在尝试将两个功能组合在一起,以便它们同时进行。我怎么能这样做?
这是JavaScript:
function showTicks()
{
if (chooseShield.value == ("ely"))
{
document.getElementById("cb1").disabled=false;
document.getElementById("cb2").disabled=false;
document.getElementById("cb3").disabled=false;
document.getElementById("cb4").disabled=false;
document.getElementById("cb5").disabled=true;
document.getElementById("cb6").disabled=true;
document.getElementById("cb7").disabled=true;
document.getElementById("cb8").disabled=true;
document.getElementById("cb9").disabled=true;
}
}
function checkchecks()
{
if(likeShield.value == ("noShield") && chooseShield.value == ("ely") && (cb3.checked == true || cb4.checked == true))
{
document.getElementById("cb2").checked=true;
}
likeShield.onchange=checkchecks
chooseShield.onchange=checkchecks
cb3.onchange=checkchecks
cb4.onchange=checkchecks
}
function doBoth() {
checkAll();
checkchecks();
}
likeShield.onchange=doBoth;
chooseShie;d.onchange=doBoth;
cb3.onchange=doBoth;
cb4.onchange=doBoth;
第一个函数禁用除1,2,3和4之外的所有复选框。第二个函数应允许用户单击3或4,这将自动检查复选框2.但只有第二个函数有效,第一个函数是忽略。 html中的onchange =“showTicks()”。
答案 0 :(得分:2)
你可以这样做:
var doBoth = function(){
showTicks();
checkchecks();
};
likeShield.onchange=doBoth;
chooseShield.onchange=doBoth;
cb3.onchange=doBoth;
cb4.onchange=doBoth;
另一种选择是使用addEventListener:
likeShield.addEventListener('change', showTicks);
likeShield.addEventListener('change', checkchecks);
但在你的情况下会更加冗长。
当然,如果你的两个函数没有其他用途,最简单的方法是获取showTicks函数的代码并将其放入checkchecks函数中。
另外,不要忘记确保定义chooseShield
之类的变量。以下是定义变量的方法:
var chooseShield = document.getElementById('chooseShield');
var likeShield = document.getElementById('likeShield');
for (var i=1; i<10; i++) window['cb'+i]=document.getElementById('cb'+i);