我的问题如下:我想实现一个(真正的)小应用程序,在该应用程序中,我想生成一个字母(在a和e之间),并将其与后来进行的用户输入进行比较。如果用户输入与应弹出消息的生成字母不同,则告诉用户他做出了错误的选择。如果用户做出了正确的选择,则计数器获得 1,如果用户至少达到5分中的3分,他将赢得奖金。用户在脚本结束之前进行了3次尝试。
障碍是我的主要重点在于PHP。我对javaScript的了解并不多。
这样,当用户输入他的答案时,我的脚本将不会做任何事情。
解决!下面的代码是解决方案。
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();
})()
<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;">
这是小提琴:将生成的字符串与用户输入进行比较