gpt4 book ai didi

javascript - 如何在休息后重新提示之前添加警报框(如果为空);

转载 作者:行者123 更新时间:2023-12-03 11:35:18 26 4
gpt4 key购买 nike

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

这是我尝试过的,但在输入字符串/int/float 后或者无论它是否为空,我都会收到警报。 :(

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)
}
}

}

这是在没有我的警报框实现的情况下正常工作的原始代码:

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

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

if (myValue==null) break;

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

}

谢谢

干杯,杰森·席格尔

最佳答案

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

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;。然后您可以执行 var globalValue = breakTest(); 让用户分配一个新值。

此外,函数中的 break;loopBoolean 执行相同的操作。一旦 loopBooleanfalse,您将停止 while 循环,但 while 循环也会通过 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 并在那里使用 loopBoolean (一致性!)并且这个循环没有意义,因为无论哪种方式你都会破坏它,因此实际上并没有循环。我认为您实际上不想在“输入”警报之后打破循环,直到有人输入某些内容为止。

关于javascript - 如何在休息后重新提示之前添加警报框(如果为空);,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26542301/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com