Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中调用if语句中的函数?_Javascript_Function_If Statement - Fatal编程技术网

如何在JavaScript中调用if语句中的函数?

如何在JavaScript中调用if语句中的函数?,javascript,function,if-statement,Javascript,Function,If Statement,我无法理解函数showinput()是如何被预赋值的。 函数中有一些if语句。如果If语句为true,那么它们应该执行一个函数。我希望函数隐藏或显示easyAssignments div中的输入,具体取决于用户在numEAI中输入的内容。(示例:用户输入3,仅显示3个输入框)但是,当我单击enter按钮时,似乎什么也没有发生 <div id ="numEA"> <p>How many easy assignments do you have

我无法理解函数showinput()是如何被预赋值的。 函数中有一些if语句。如果If语句为true,那么它们应该执行一个函数。我希望函数隐藏或显示easyAssignments div中的输入,具体取决于用户在numEAI中输入的内容。(示例:用户输入3,仅显示3个输入框)但是,当我单击enter按钮时,似乎什么也没有发生

   <div id ="numEA">
  <p>How many easy assignments do you have to do today?</p>
  <input min="0" max="5" type="number" id="numEAI">
  <button class="w3-button w3-red" onclick="showInputE()">Enter</button>
</div>


<div id="easyAssignments">
    <p>What easy assignments do you have to do today?</p>
      <input type="text" id="easyA1">
      <input type="text" id="easyA2">
      <input type="text" id="easyA3">
      <input type="text" id="easyA4">
      <input type="text" id="easyA5">


</div>

<script>



  /* START of show input functions */

  function onlyShowInput1(){
      document.getElementById("easyA2").style.display = "none";
      document.getElementById("easyA3").style.display = "none";
      document.getElementById("easyA4").style.display = "none";
      document.getElementById("easyA5").style.display = "none";
      }
  function onlyShowInput2(){
      document.getElementById("easyA3").style.display = "none";
      document.getElementById("easyA4").style.display = "none";
      document.getElementById("easyA5").style.display = "none";
      }


  /* END of show input functions */

  function showInputE(){
  var numEAI = document.getElementById('numEAI');

    if (numEAI === 1){
        onlyShowInput1();
    } else if (numEAI === 2){
        onlyShowInput2();
      }

  }

</script>

你今天要做多少简单的作业

进入 你今天有什么简单的作业要做

/*开始显示输入功能*/ 函数仅显示输入1(){ document.getElementById(“easyA2”).style.display=“无”; document.getElementById(“easyA3”).style.display=“无”; document.getElementById(“easyA4”).style.display=“无”; document.getElementById(“easyA5”).style.display=“无”; } 函数仅显示输入2(){ document.getElementById(“easyA3”).style.display=“无”; document.getElementById(“easyA4”).style.display=“无”; document.getElementById(“easyA5”).style.display=“无”; } /*显示输入函数结束*/ 函数showinput(){ var numaei=document.getElementById('numaei'); 如果(numEAI==1){ 仅显示输入1(); }else if(numaei==2){ 仅显示输入2(); } }
将脚本更改为:

function showHide(n) {
  let inputs = document.getElementById("easyAssignments").querySelectorAll("input");
  let item = 0;
  inputs.forEach(function(i) {
    item++;
    if (item <= n) {
      i.style.display = "inline";
    } else {
      i.style.display = "none";
    }
  })
}
function showInputE(){
  var numEAI = document.getElementById('numEAI').value;
  showHide(numEAI);
}
函数显示隐藏(n){
让输入=document.getElementById(“easyaSignments”).querySelectorAll(“输入”);
设项=0;
输入。forEach(功能(i){
项目++;

if(item您当前正在将DOM元素与
if
语句中的数字进行比较

为了测试元素中包含的值,您可以使用
numaei.value
检索它。这将返回一个字符串,因此如果您要使用
===
,它测试值和类型的相等性,您需要将它与字符串
if(numaei.value==='1')进行比较
,否则只需使用
=
测试值的相等性

/*开始显示输入功能*/
函数仅显示输入1(){
document.getElementById(“easyA2”).style.display=“无”;
document.getElementById(“easyA3”).style.display=“无”;
document.getElementById(“easyA4”).style.display=“无”;
document.getElementById(“easyA5”).style.display=“无”;
}
函数仅显示输入2(){
document.getElementById(“easyA3”).style.display=“无”;
document.getElementById(“easyA4”).style.display=“无”;
document.getElementById(“easyA5”).style.display=“无”;
}
/*显示输入函数结束*/
函数showinput(){
var numaei=document.getElementById('numaei');
如果(numEAI.value=='1'){
仅显示输入1();
}else if(numaei.value==2){
仅显示输入2();
}
}

你今天要做多少简单的作业

进入 你今天有什么简单的作业要做


您需要在条件中使用
numaei.value
if(numaei.value='1'){…
您应该使用==不===因为值可能不是相同的对象类型。虽然此代码有效,但它没有回答问题,这就是OP的条件不起作用的原因。最好在提供不相关的代码之前解释为什么它不起作用。我在前面的评论中做了解释-原因是===而不是==