2017-02-22 12 views
2

私は、作成する配列のサイズを入力してsubmitを打つことができるテキストボックスを提供しようとしていますが、そのたびに配列に入れる整数を求めるプロンプトが何度も現れます。javascriptでn回ループするコード、nはユーザーの入力によって決まりますか?

http://codepen.io/sharryliang0730/pen/pRMqOm

<!DOCTYPE html> 
<html> 
<head> 
<script type="text/javascript"> 

    window.onload = function() { 
     document.getElementById('ifYes').style.display = 'none'; 
     document.getElementById('ifNo').style.display = 'none'; 
      } 

function yesnoCheck() { 
if (document.getElementById('yesCheck').onclick) { 
    document.getElementById('ifYes').style.display = 'block'; 
    document.getElementById('ifNo').style.display = 'none'; 
} 
else if(document.getElementById('noCheck').onclick) { 
    document.getElementById('ifNo').style.display = 'block'; 
    document.getElementById('ifYes').style.display = 'none'; 
    } 
} 


      var submit = document.getElementById('submit'); 
    submit.onclick = function() { 
getTheData() ; 
} 



function getTheData() { 
    var sizeInput = document.getElementById("sizeInput"); 
    var inputValues = new Array(); 

    for (var i = 0; i < sizeInput; i++){ 
    inputValues.push(prompt('Enter the value')); 

    } 

} 
</script> 
</head> 
<body> 
Please choose what you wanna do:<br> 

<input type="button" onclick="javascript:yesnoCheck();" name="yesno" id="yesCheck" value="Create Array"/> 


<input type="button" onclick="javascript:yesnoCheck();" name="yesno" id="noCheck"value="Search Array"/> 


<br> 
<div id="ifYes" style="display:none"> 
<br> Please input the size of the array.<br><br> 
<input type="text" class="sizeInput" id="sizeInput" /> <br/><br> 
<input type="button" name="submit" id="submit" value="Submit"/> 
</div> 


<div id="ifNo" style="display:none"> 

<div id="showInputValues"> 
</div> 

EDITは:私が提案したコードに追加しましたが、それはまだ動作していない

これは私がこれまで持っているものです。何か不足していますか?

+0

ので、プロンプトはありますか? –

+0

それは私がやろうとしていることです。私はそれを設定する方法を知らないので、プロンプトが何度も表示され、ユーザーの入力が繰り返されます。 ループの前にアレイのサイズを尋ねるプロンプトを意味しますか?新しいウィンドウのプロンプトの代わりに入力タイプ=テキストを使用しました。それは事に影響を及ぼしますか? – Sharry

答えて

1

あなたのinputValuesは空です。

[「3」、「1」、「2」]しかし、あなたがしたい場合は、あなたの配列はint型の値がこれを行うがあります:それはあなたにこのような配列を与える

var inputValues = new Array(); 
    for (var i = 0; i < sizeInput; i++) 
    { 
     inputValues.push(prompt('Enter the value')); 

    } 

:あなたは、これを追加する必要があります。

ご説明することで
for (var i = 0; i < 5; i++) 
    { 
     inputValues.push(parseInt(prompt('Enter the value')));//[1,2,3] 
    } 

var sizeInput = document.getElementById("sizeInput");

sizeInputは、ユーザが入力した番号です。それは例えば5であり、あなたが配列でありたい[0,1,2,3,4]あなたがこれを行う必要がある場合:

for (var i = 0; i < sizeInput; i++) 
    { 
    inputValues.push(i); 
    } 

あなたは、あなたのコード内で多くの問題を持って、私は、コードスニペット内のすべての編集しました以下:

<head> 
 
    <script type="text/javascript"> 
 
     window.onload = function() 
 
     { 
 
      document.getElementById('ifYes').style.display = 'none'; 
 
      document.getElementById('ifNo').style.display = 'none'; 
 
      var submit = document.getElementById('submit'); 
 
      submit.onclick = function() 
 
      { 
 
       getTheData(); 
 
      } 
 
     } 
 

 
     function yesnoCheck() 
 
     { 
 
      if (document.getElementById('yesCheck').onclick) 
 
      { 
 
       document.getElementById('ifYes').style.display = 'block'; 
 
       document.getElementById('ifNo').style.display = 'none'; 
 
      } 
 
      else if (document.getElementById('noCheck').onclick) 
 
      { 
 
       document.getElementById('ifNo').style.display = 'block'; 
 
       document.getElementById('ifYes').style.display = 'none'; 
 
      } 
 
     } 
 

 
     function getTheData() 
 
     { 
 
      var sizeInput = document.getElementById("sizeInput").value; 
 
      var inputValues = new Array(); 
 

 
      for (var i = 0; i < sizeInput; i++) 
 
      { 
 
       inputValues.push(prompt('Enter the value')); 
 

 
      } 
 

 
     } 
 
    </script> 
 
</head> 
 
<body> 
 
    Please choose what you wanna do:<br> 
 

 
    <input type="button" onclick="javascript: yesnoCheck();" name="yesno" id="yesCheck" value="Create Array" /> 
 

 

 
    <input type="button" onclick="javascript: yesnoCheck();" name="yesno" id="noCheck" value="Search Array" /> 
 

 

 
    <br> 
 
    <div id="ifYes" style="display: none"> 
 
     <br> 
 
     Please input the size of the array.<br> 
 
     <br> 
 
     <input type="text" class="sizeInput" id="sizeInput" /> 
 
     <br /> 
 
     <br> 
 
     <input type="button" onclick="javascript: loopFunction();" name="submit" id="submit" value="Submit" /> 
 
    </div> 
 

 

 
    <div id="ifNo" style="display: none"></div> 
 

 
    <div id="showInputValues"> 
 
    </div> 
 
</body>

+0

ありがとうございました!私のコードを更新しましたが、プロンプトが表示されません...サイズインプットが何らかの理由で動作していないと感じました... – Sharry

+0

あなたのコードにいくつかの編集を加えたコードスニペットを追加しました。見て、結果を教えてください。 –

+0

投稿情報を最初の関数に移動し、 ".value"を追加し、 "onclick =" javascript:loopFunction(); "をhtmlに追加したことに気付きました。私はスクリプトでそれを持つことは十分だと思っていました。もう一度ありがとうございます。私はjsについてもっと研究する必要があります。 – Sharry

関連する問題