2017-10-14 53 views
0

在我的JavaScript程序中,我在do-while循环中创建了提示对话框。提示应该运行直到用户在提示中进入停止。当用户在提示中输入值时,它应该显示在屏幕上,并且应该生成另一个提示。但在我的情况下,当我第一次输入值提示时,会生成另一个提示而不显示值。任何人都可以告诉我我的代码有什么问题吗?JavaScript:如何在每次提示后显示值

代码:

<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> 
+0

我里面加做的,但仍然无法正常工作 – pari

回答

0

你有两个问题:

  1. 的代码,以显示它是外循环
  2. 即使是在循环中,你没有给浏览器提供它的机会。

试试这个:

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();
<h3 id="txt1"></h3>

setTimeout功能将产生控制浏览器,因此它可以呈现文本,再次调用myFunction之前。

+0

太感谢你了,但是当我进入停止它不应该显示提示...它应该打印上次和退出。 – pari

+0

是的,我发现非常讨厌,而选择只是点击取消,而不是。我相信你可以想出如何让它停止在“停止”,而不是,如果这是你真正想要的。 – glennsl

+0

我很抱歉,你觉得它很烦人。我用do/while并使用了setTimeout,但它仍然不起作用。请介意编辑代码吗? – pari

-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> 
+0

它不工作 – pari

+0

哎呀...猜测它应该是“.toLowerCase()” – codemaker

+0

也许这将更好地工作 – codemaker

-1

这应该工作,而不是显示dom中由于提示而隐藏的答案,这会将文本置于下一个提示中。

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

你可以让它运行吗? – pari

+0

它不起作用。 – pari

+0

我刚测试过它,它对我有用,什么不工作? – user7951676