这是我的代码:
for (i = 0; i < 2; i++) {
$("div").append("I Want to Display this before user enter input in Prompt <br>")
setTimeout(function() {
input = prompt("test");
//PUT more code here
});
$("div").append("I Want to Display this after user enter input in Prompt")
}
这是小提琴:fiddle
这就是我想要的
我希望在用户在提示
中输入输入之前显示此内容现在接受输入
我想在用户在提示输入输入后显示此内容
我希望在用户在提示
中输入输入之前显示此内容现在接受输入
我想在用户在提示输入输入后显示此内容
我想以这种方式从用户那里获取输入。如果不是通过提示,那么任何其他方式?
答案 0 :(得分:0)
答案 1 :(得分:0)
您需要将append
保留在div
内的setTimeout()
内,您还可以检查input
值是否为null
输入。除此之外,使用setInterval()
继续在更新的问题中显示提示,以便当用户按cancel
时,提示会永久关闭。
$("div").append("I Want to Display this before user enter input in Prompt <br>")
var promptLoop = setInterval(function(){
var input = prompt("test");
if(input !== null && input.trim() !== ''){
$("div").append("<br/>I Want to Display this after user enter input in Prompt. User input is " + input)
} else {
clearInterval(promptLoop);
}
}, 1000);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div></div>
&#13;
答案 2 :(得分:0)
你的代码的问题是setTimout
函数是异步的,这意味着它内部的代码块不会立即执行,而是被放入event queue
,等待所有代码执行相同作用域中的其余代码,然后才执行。
如果您只想在setTimeout
延迟过后才执行某些代码,那么您需要将所有代码放在setTimeout
内。
$("div").append("I Want to Display this before user enter input in Prompt <br>")
setTimeout(function() {
const input = prompt("test");
//PUT more code here
$("div").append("I Want to Display this after user enter input in Prompt")
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div></div>
&#13;