警报、提示和最终警报

Alerts, prompts, and a final alert

我不知道如何让我的代码提示用户至少 3 次,单击按钮 仅一次 ,然后提示,如果用户没有输入然后出现警报,再次提示,然后警报,再次提示然后警报......一旦用户输入失败 3 次,然后最终警报显示为 "No more attempts!"单击最终警报,DIV 背景颜色变为灰色,有人可以帮助我吗?我知道如何将 DIV 背景变成灰色,我的问题是我认为应该是一个循环(提示、警报、提示、警报)

var mObjt = {
  userInput: "",

  setInput: function() {
    document.getElementById("div1").innerHTML = mObjt.userInput;
  },

  conRequest: function() {
    if (mObjt.userInput != "") {
      mObjt.setInput();
    } else {
      alert("There is no input!");
      mObjt.popRequest();
    }
  },

  popRequest: function() {
    mObjt.userInput = prompt("Enter a word:");
    mObjt.conRequest();
  }
}
<div id="div1" style="width:200px; height:30px; border:1px solid;"></div>
<button type="button" onClick="mObjt.popRequest()">Add Property</button>

这是一个脚本块,可以执行您想要执行的操作。

var mObjt = {
userInput: "",

setInput: function(){
    document.getElementById("div1").innerHTML = mObjt.userInput;},

popRequest: function(){ 
var attempts = 0;

while (attempts < 3 && mObjt.userInput === "") {
    attempts++;
    mObjt.userInput = prompt("Enter a word:");
    if (mObjt.userInput === "")
        alert("You must enter a value");
}
if (mObjt.userInput === ""){
    alert("No more attempts");
    //disable work
} else {
    mObjt.setInput();
}

}}

你可以用一个简单的循环来实现。

var prompting = function () {

    for (var i = 0; i < 3; i++) {

        mObjt.userInput = prompt("Enter a word:");

        if (mObjt.userInput == "") {

            if (i != 2) alert("You must enter a value");
            else alert("No more attempts");

        else {

            mObjt.setInput();
            return;
        }
    }
}