如何制作3个按钮来选择不同的参数

时间:2019-01-07 10:05:43

标签: javascript html button

所以我的代码是这样的,我想在我的脑海中为每个按钮选择不同的参数,这很有意义,但是那样行不通,什么是正确的语法? 因为如果我单击start(Easy)按钮,它应该算作未定义,哪个应该开始第一个参数?如果未定义“普通”,则应该从第二个开始,我不知道为什么这不起作用

<button type="button" onclick="start(Easy)" id="startEasy">Lahká</button>
<button type="button" onclick="start(Normal)" id="startNormal">Stredná</button>
<button type="button" onclick="start(Hard)" id="startHard">Tážká</button>

  function start(Easy, Normal, Hard) {
        if (Easy === undefined) {
        document.getElementById("diffi").style.display = "none";
        document.getElementById("startNormal").style.display = "none";
        document.getElementById("startHard").style.display = "none";
        document.getElementById("startEasy").style.display = "none";
        document.getElementById("hideEasy").style.display = "block";
        document.getElementById("gratulujem").innerHTML = "Zadajťe hodnotu:";
        document.getElementById("rules").style.display = "none";
        document.getElementById("numbEasy").style.display = "inline-block";
        document.getElementById("pocet").style.display = "block";
        document.getElementById("odpovedEasy").style.display = "block";
        document.getElementById("odpovedNormal").style.display = "block";
        document.getElementById("odpovedHard").style.display = "block";
        document.getElementById("numbEasy").focus();
        document.getElementById("odpovedEasy").innerHTML = "Zadajte číslo 1..20";
        document.getElementById("vsetko").style.maxHeight = "350px";
        }
      else if (Normal === undefined) {
        document.getElementById("diffi").style.display = "none";
        document.getElementById("startNormal").style.display = "none";
        document.getElementById("startHard").style.display = "none";
        document.getElementById("startEasy").style.display = "none";
        document.getElementById("hideNormal").style.display = "block";
        document.getElementById("gratulujem").innerHTML = "Zadajťe hodnotu:";
        document.getElementById("rules").style.display = "none";
        document.getElementById("numbNormal").style.display = "inline-block";
        document.getElementById("pocet").style.display = "block";
        document.getElementById("odpovedEasy").style.display = "block";
        document.getElementById("odpovedNormal").style.display = "block";
        document.getElementById("odpovedHard").style.display = "block";
        document.getElementById("numbNormal").focus();
        document.getElementById("odpovedNormal").innerHTML = "Zadajte číslo 1..50";
        document.getElementById("vsetko").style.maxHeight = "350px";
        }
      else {
        document.getElementById("diffi").style.display = "none";
        document.getElementById("startNormal").style.display = "none";
        document.getElementById("startHard").style.display = "none";
        document.getElementById("startEasy").style.display = "none";
        document.getElementById("hideHard").style.display = "block";
        document.getElementById("gratulujem").innerHTML = "Zadajťe hodnotu:";
        document.getElementById("rules").style.display = "none";
        document.getElementById("numbHard").style.display = "inline-block";
        document.getElementById("pocet").style.display = "block";
        document.getElementById("odpovedEasy").style.display = "block";
        document.getElementById("odpovedNormal").style.display = "block";
        document.getElementById("odpovedHard").style.display = "block";
        document.getElementById("numbHard").focus();
        document.getElementById("odpovedHard").innerHTML = "Zadajte číslo 1..100";
        document.getElementById("vsetko").style.maxHeight = "350px";
      }
  }

2 个答案:

答案 0 :(得分:2)

这是我的解决方案:

<button type="button" onclick="Start('easy')" id="startEasy">Lahká</button>
<button type="button" onclick="Start('normal')" id="startNormal">Stredná</button>
<button type="button" onclick="Start('hard')" id="startHard">Tážká</button>

function Start(mode)
{
   switch(mode)
   {
     case 'easy' :
       // Do it easy.
       break;

     case 'normal' :
       // Do it normal.
       break;

     case 'hard' :
       // Do it hard.
       break;

     // In this case undefined and default is the same thing,
     // This can be simplified just by default.
     // case 'undefined' :
     default :
      // Do it as you want if undefined.
      // Do it easy for example.
      break;
   }
}

答案 1 :(得分:0)

您有一个带有三个参数的function,并且对于每个按钮,您尝试传递第一个参数的值,但是这些值是undefined。您需要先定义这些值(为简单起见,我将在全局范围内定义这些值,但稍后您可以重构代码):

var Easy = 'Easy';
var Normal = 'Normal';
var difficult = 'Difficult';

,然后这些按钮应该起作用:

<button type="button" onclick="start(Easy)" id="startEasy">Lahká</button>
<button type="button" onclick="start(Normal)" id="startNormal">Stredná</button>
<button type="button" onclick="start(Hard)" id="startHard">Tážká</button>

我们可以简化您的function,例如,您不需要ifswitch,只需使用您收到的参数即可:

  function start(difficulty) {
        document.getElementById("diffi").style.display = "none";
        document.getElementById("startNormal").style.display = "none";
        document.getElementById("startHard").style.display = "none";
        document.getElementById("startEasy").style.display = "none";
        document.getElementById("hide" + difficulty).style.display = "block";
        document.getElementById("gratulujem").innerHTML = "Zadajťe hodnotu:";
        document.getElementById("rules").style.display = "none";
        document.getElementById("numb" + difficulty).style.display = "inline-block";
        document.getElementById("pocet").style.display = "block";
        document.getElementById("odpovedEasy").style.display = "block";
        document.getElementById("odpovedNormal").style.display = "block";
        document.getElementById("odpovedHard").style.display = "block";
        document.getElementById("numb" + difficulty).focus();
        document.getElementById("odpoved" + difficulty).innerHTML = "Zadajte číslo 1..20";
        document.getElementById("vsetko").style.maxHeight = "350px";
  }