我制作了一个排列和组合计算器。如果置换|选择组合,输入值,计算按钮应亮起。如何在不设置间隔的情况下执行此操作。我目前的代码:
function checkCalc(){
if(((permutation==true)||(combination==true))&&(document.getElementById('r').value.length>0)&&(document.getElementById('n').value.length>0)){
calculate.style.backgroundColor="#ccccff";
calculate.style.boxShadow="10px 10px 5px gray";
}
else{
calculate.style.backgroundColor="gray";
}
}
setInterval(checkCalc, 50);
如果我删除了该功能(只是离开if语句),它就不起作用了。
答案 0 :(得分:1)
当你正在检查值时,你可以在r
文本字段上设置一个事件监听器(我假设它是一个文本字段?),一旦你输入内容就会被触发:
document.getElementById('r').onkeydown=function(){
if(((permutation==true)||(combination==true))&&(document.getElementById('r').value.length>0)&&(document.getElementById('n').value.length>0)){
calculate.style.backgroundColor="#ccccff";
calculate.style.boxShadow="10px 10px 5px gray";
}
else{
calculate.style.backgroundColor="gray";
}
}
答案 1 :(得分:1)
您需要从输入中的keyup上调用此函数。
我做了一个演示:
var permutation=true;
var combination=true;
var calculate= document.getElementById('calculate')
function checkCalc(){
if(((permutation==true)||(combination==true))&&(document.getElementById('r').value.length>0)&&(document.getElementById('n').value.length>0)){
calculate.style.backgroundColor="#ccccff";
calculate.style.boxShadow="10px 10px 5px gray";
}else{
calculate.style.backgroundColor="gray";
}
}
<input type ="text" id ='r' onkeyup="checkCalc()">
<input type ="text" id ='n' onkeyup="checkCalc()">
<button id="calculate">Light</button>