JavaScript:如何在每个提示后显示值

时间:2017-10-14 01:53:06

标签: javascript

在我的JavaScript程序中,我在do-while循环中创建了提示对话框。提示应运行,直到用户在提示符下输入stop。当用户在提示符中输入值时,它应显示在屏幕上,并应生成另一个提示。但在我的情况下,当我第一次输入值时,提示另一个提示生成而不显示值。谁能告诉我我的代码中有什么问题?

代码:

<html>
<head>
    <title>lab12</title>
</head>
<body bgcolor="#efe862">
    <h3 id="txt1"></h3>
</body>
<script> 
    myFunction();
    function myFunction() {
        do {
            var prom = window.prompt("Enter a text(stop to exit)");
        } while(prom != "stop");    
        document.getElementById("txt1").innerHTML = "The text is: " + prom;
    }
</script>
</html>

3 个答案:

答案 0 :(得分:0)

你有两个问题:

  1. 显示它的代码在循环之外
  2. 即使它在循环内部,您也不会给浏览器提供呈现它的机会。
  3. 试试这个:

    &#13;
    &#13;
    function myFunction() {
      var prom = window.prompt("Enter a text (cancel to exit)");
      if (prom != null) {
          document.getElementById("txt1").innerHTML = "The text is: " + prom;
          setTimeout(myFunction, 0);
      }
    }
    myFunction();
    &#13;
    <h3 id="txt1"></h3>
    &#13;
    &#13;
    &#13;

    setTimeout函数将控制浏览器,以便在再次调用myFunction之前呈现文本。

答案 1 :(得分:-1)

<script type="text/javascript" language="javascript">
        myFunction();

        function myFunction() 
        {
        var prom = "";
        var done = false;

        try
            {
            while(!done)
            {
                prom = window.prompt("Enter a text(stop to exit)");

            if(prom==null) prom="null";

            done = (prom.toLowerCase() =="stop");

            if(!done) document.getElementById("txt1").innerHTML = "The text is: " + prom;
            }    
        }
        catch(e)
            {
        alert("Error:  " + e.Message);
            }
            finally
            {

            }
    }
</script>

答案 2 :(得分:-1)

这应该有效,而不是显示由于提示隐藏的dom中的答案,这会将文本放在下一个提示中。

<script>
function myFunction(){
var prom=prompt("Enter some text");
while(prom!="stop"){
prom=prompt("The text is "+prom);
}
}
myFunction();
</script>