2017-10-14 17 views
0

私のJavaScriptプログラムでは、do-whileループでプロンプトダイアログボックスを作成しました。プロンプトは、ユーザーがプロンプトでstopを入力するまで実行する必要があります。プロンプトで値を入力すると、画面に表示され、別のプロンプトが表示されます。しかし、私の場合、プロンプトで初めて値を入力すると、値を表示せずに別のプロンプトが生成されます。誰でも私のコードで何が間違っているのか教えていただけますか?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

次の2つの問題を抱えて:

  1. それを表示するためのコードを、それがループの中にあった場合でも、ループ
  2. の外にある、あなたがしていますブラウザにレンダリングの機会を与えることはありません。

これを試してみてください:それは再びmyFunctionを呼び出す前に、テキストを描画することができるように

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機能がブラウザにコントロールが得られます。

+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

を動作しません、それはおっと...「).toLowerCase(」あるべきと思い – pari

+0

働いていないので、ありがとうございましたが、私は入力したとき停止するとプロンプトが表示されなくなります...最後に印刷して終了する必要があります。 – 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

関連する問題