比较生成的字母与用户输入

时间:2017-03-09 12:32:26

标签: javascript jquery compare

我的问题如下:我想实现一个(真的)小应用程序,我想在其中生成一个字母(在A和E之间)并将其与之后的用户输入进行比较。如果用户输入与生成的字母不同,则会弹出一条消息,告诉用户他做出了错误的选择。如果用户做出了正确的选择,则计数器获得+1,如果用户达到5分中的至少3分,则他赢得奖品。在脚本结束之前,用户有3次尝试。

障碍是我的主要关注点是php。我在JavaScript方面的知识并不多。

因此,当用户输入答案时,我的脚本将不会执行任何操作。

1 个答案:

答案 0 :(得分:0)

解决了! 下面的代码是解决方案。



String.prototype.last = function(){


return this[this.length - 1]
}
;(function() {
  var score = 0;
  var text = "";
  var possible = "ABCDE";
  var noOfTries = 5;

  function generateCharacter() {
    var index = Math.floor(Math.random() * 100) % possible.length;
    text = possible[index];
    possible = possible.slice(0, index) + possible.slice(index+1);
    alert(text);
    return text;
  }

  function validate(string) {
    return (string || "").trim().last() === text.last();
  }

  function handleChange(){
  	var valid = validate(this.value);
    if(valid){
    	score++;
      alert("Richtig!");
    }else{
    	alert("Das war leider falsch. Die richtige Antwort wäre " + text + " gewesen!");
    }
    console.log(this.value.length === noOfTries)
    this.value.length === noOfTries ? notify() : generateCharacter();
  }
  
  function notify(){
  	if(score == 0) {
    	alert("Schade! Sie haben " + score + " Punkte erreicht! Nochmal?");
    }else if(score >= 1 && score <3){
    	alert("Schade! Sie haben lediglich " + score + " von 5 Punkten erreicht! Nochmal?");
    }else if(score >= 3 && score <= 5) {
      alert("Herzlichen Glückwunsch! Sie haben " + score + " von 5 Punkten erreicht!");
    }
  }
  
  function registerEvent(){
  	document.getElementById('which').addEventListener('keyup', handleChange);
  }
  registerEvent();
  generateCharacter();
})()
&#13;
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
    <label for="which">Antwort? </label>
    <input type="text" name="which" id="which" placeholder="#" style="width: 9px;">
&#13;
&#13;
&#13;

这是小提琴:Compare generated string with user input