2016-07-27 10 views
-2

ここに問題があります。ユーザーは配列のテキストボックスにインデックスの数を入力します。インデックスを取った後、私は何度も何度も来ているユーザがそのプロンプトボックスが、その配列に格納するためのプロンプトボックスから値を入力すると、私はボタンをここに入力 を取るたびにクリックする必要があり、コードJava Script Get array from array fromテキストボックス

<!doctype html> 
    <html> 
    <head> 
    <meta charset="utf-8"> 
    <title>Untitled Document</title> 
    </head> 

    <body> 
    <label> Enter Number of Records </label> 
    <input type="text" id="t1"> 
    <input type="button" value="Enter" onClick="record()"> 

    <h1 id="demo"></h1> 

    <script src="script.js" type="text/javascript"></script> 
    </body> 
    </html> 
です

Javaスクリプト:

var data = document.getElementById("t1").value; 
function record(){ 
    var crap = new Array(data); 
    for(var i=0;i<crap.length;i++){ 
     crap[i] = prompt("Add something in my array",""); 
    document.getElementById("demo").innerHTML += crap[i]+"<br>"; 
    } 
+0

....コーディングをお楽しみください:だからcrap.lengthは常に1

これを試してみてくださいになります。また、何かを入力して配列の特定のインデックスに配置するか、単純に配列の最後にそれを押したいのですか? –

+0

_配列のテキストボックスにインデックス番号を入力したい場合は、正確に何を探しているのかを明確にしてください。 – brk

+0

@SpencerWieczorek配列内に何かを入力するだけです –

答えて

0

あなたの場合、機能の外でdataを検索しています。したがって、その値は「未定義」になり、crapundefinedの1つの値の配列になります。
function record(){ var data = document.getElementById("t1").value; var crap = [] if(crap != undefined) for(var i=0;i<data;i++){ var tmp = prompt("Add something in my array",""); crap.push(tmp); document.getElementById("demo").innerHTML += crap[i]+"<br>"; } }
あなたはループの中でそれを使用しているので、 `prompt`は、各配列要素に対して実行されますので

0

これはあなたの問題を解決する、これを試してみてください。

は、あなただけのcrapという名前の配列を宣言していて、問題を取得しているので、あなたは、配列がを充填しても前にcrap.lengthを取得しようとしています。データには値がありますので、dataの値でループしてみてください。

function record(){ 
 
      data = document.getElementById("t1").value; 
 
\t  var crap = new Array(parseInt(data)); // you should take data here, since crap is empty at this point. 
 
      console.log(data) 
 
\t  for(var i=0;i<data;i++){ 
 
\t \t crap[i] = prompt("Add something in my array",""); 
 
\t  document.getElementById("demo").innerHTML += crap[i]+"<br>"; 
 
\t  } 
 
\t }
<!doctype html> 
 
    <html> 
 
    <head> 
 
    <meta charset="utf-8"> 
 
    <title>Untitled Document</title> 
 

 
    </head> 
 

 
    <body> 
 
    <label> Enter Number of Records </label> 
 
    <input type="text" id="t1"> 
 
    <input type="button" value="Enter" onClick="record()"> 
 

 
    <h1 id="demo"></h1> 
 

 
    <script src="script.js" type="text/javascript"></script> 
 
    </body> 
 
    </html>

コードスニペットを実行して、答えを確認してください。

+0

なぜ 'data'を配列に入れて、それをループで上書きしていますか? – Barmar

+0

データは関数内にありますが、ループ内ではありません。 'crap.length'は何もしません。その時点で配列が空であるため、コードスニペットを実行して確認してください。 – Sravan

+0

'crap = new Array(data)'は、 'data'が整数以外のときは' crap = [data] 'と同じです。 – Barmar