如何在休息后重新提示之前添加提醒框,如果为空;

时间:2014-10-24 05:56:16

标签: javascript

我是一名Javascript学生,我想知道正确的语法是在提示旁边包含一个警告框,说“嘿,等一下,你需要填写表格!"并且必须单击"确定"在它中断并重新提示用户输入字符串或int / float之前。我知道这是多余的,但这仅仅是为了学习。

这是我尝试的但是在输入字符串/ int / float之后我得到了警告,或者无论如何它都是null。 :(

function breakTest() {
var loopBoolean = true;
var myValue = "";
while(loopBoolean) {

  myValue = prompt("Enter data", myValue);

    if (myValue==null); 
      alert("Hey, wait a minute, you need to complete the form!"); break;

      if (myValue) {
        loopBoolean = false;
        alert (myValue)
      }
}

}

这是在没有警报框实现的情况下正常运行的orignial代码:

function breakTest() {
var loopBoolean = true;
var myValue = "";
while(loopBoolean) {

  myValue = prompt("Enter data", myValue);

    if (myValue==null) break;

      if (myValue) {
        loopBoolean = false;
        alert (myValue)
      }
}

}

由于

干杯, Json Segel

3 个答案:

答案 0 :(得分:1)

你的问题是一个简单的逻辑,有一个有效:

function breakTest() {
    var myValue = "";
    // you don't need a loopBoolean because you will break the loop manually
    while(true) {
        myValue = prompt("Enter data", myValue);
        // First of, your value will not be null but empty, so ""
        if (myValue == ""){ 
            alert("Hey, wait a minute, you need to complete the form!"); 
            // also, you want to reprompt to input a value, so you want to continue
            // to redo the loop (you could use break to end this here and now)
            continue;
        } else {
            // else you want to alert the value and break the loop
            alert (myValue);
            break;
        }
    }
}

然后你可能会返回值而不是警告,如果值为空,则使用break来转义循环(如else { break; } } return myValue;中所示。)然后你可以{{1让用户分配一个新值。

此外,您的函数中的var globalValue = breakTest();break;执行相同的操作。 loopBooleanloopBoolean后,您会停止while循环,但while循环也会被false关键字停止,因此您可以使用它。

修改后的代码段

我个人真的不会这样做(我认为你的缩进可能会更清晰,只有当你在声明中时才会缩进),但这应该可以做到这一点

break;

我只想说明你可以省略function breakTest() { var loopBoolean = true; var myValue = ""; while(loopBoolean) { myValue = prompt("Enter data", myValue); if (myValue == ""){ alert("Hey, wait a minute, you need to complete the form!"); // You dont want to break here, actually, as you want to rerun the loop. // So I'll comment out the break. Now it will prompt until you enter something! // break; } if (myValue) { loopBoolean = false; // <- this does the same as using break: it ends your loop alert (myValue) } } } 或省略loopBoolean并在那里使用break(一致性!)并且这个循环没有意义,因为你打破它的方式,因此实际上没有循环。我想你实际上想要在'输入'警告之后打破循环,直到有人输入内容。

答案 1 :(得分:0)

您正在终止if语句。只需删除分号。

   if (myValue==null)
     enter code here alert("Hey, wait a minute, you need to complete the form!");

这里没有必要休息。

答案 2 :(得分:0)

简化方法是:

function breakTest() {
    var loopBoolean = true;
    var myValue = "";
    while (loopBoolean) {//Run the loop while loopBoolean is true
        myValue = prompt("Enter data", myValue);
        //Prompt user to enter data.
        if (myValue) { //Checks if data has been entered
            loopBoolean = false; //Set the loopBoolean to true if data is found.
            alert(myValue) //Show the data
        } else {
            //Else alert the user to input data again after user clicks ok the loop continues
            //untill the loopBoolean is false.
            alert("Hey, wait a minute, you need to complete the form!");
        }
    }
}