2017-08-28 29 views
0

私は、ユーザーの選択に基づいて、入力の数を生成し、この機能を持っている:JS関数から動的な値を取得する方法

 // Number of inputs to create 
     var number = document.getElementById("cantidadArreglos").value; 
     // Container <div> where dynamic content will be placed 
     var container = document.getElementById("container"); 
     // Clear previous contents of the container 
     while (container.hasChildNodes()) { 
      container.removeChild(container.lastChild); 
     } 
     for (i=0;i<number;i++){ 
      // Append a node with a random text 
      container.appendChild(document.createTextNode("Arreglo #" + (i+1))); 
      // Create an <input> element, set its type and name attributes 
      var input = document.createElement("input"); 
      input.type = "number"; 
      input.name = "arreglo" + i; 
      container.appendChild(input); 
      // Append a line break 
      container.appendChild(document.createElement("br")); 

    } 
    } 

をそして、それは完璧に動作します。しかし、私は他の関数にユーザーが導入した値を使用する必要があります。どのように私はそれらを正しく呼び出すことができますか?

+1

をコンプリート、[最小を作成してくださいし、 Verifiable](https://stackoverflow.com/help/mcve)の例です。コードでエラーが発生しています。 – lumio

+0

このコードはここからの投稿から取られ、私が望む入力を生成するので、「エラーを投げている」ということを理解していません。私の質問は非常に単純です:どのように私はこれらの同じ入力を別の関数で呼び出す/使うことができますか?入力ごとにIDを作成する必要がありますか?そして何? – eduroc92

+0

投稿したコードはすべてこのコードですか? – lumio

答えて

1

作成する入力コントロールには、後で参照するために何らかの識別子を割り当てる必要があります。

function getValForId(var id) { 
    return document.getElementById("arreglo" + id).value; 
} 
1

することができます:あなたが作成したインデックスを使用して値を参照することができ、あなたのコード内の他の場所で、その後

for (i=0;i<number;i++) { 
    // Append a node with a random text 
    container.appendChild(document.createTextNode("Arreglo #" + (i+1))); 
    // Create an <input> element, set its type and name attributes 
    var input = document.createElement("input"); 
    input.type = "number"; 
    input.name = "arreglo" + i; 
    //assign identifier here 
    input.id= "arreglo" + i; 
    container.appendChild(input); 
    // Append a line break 
    container.appendChild(document.createElement("br")); 
} 

:これを行うには非常に単純な方法は、彼らにそれぞれのIDを割り当てることですページのタイプ番号のすべての入力を取得するdocument.querySelectorAll( 'input [type = "number"]')を使用します(一部を除外し、クラスを追加してquerySelectorに追加する必要がある場合)

var inputsNumber = document.querySelectorAll('input[type="number"]'); 

今、あなたは「inputsNumber」反復処理し、値

はまた名前が使用して単語で始まる要素取得するには、ワイルドカードを使用してquerySelectorをフィルタリングすることができます取得することができます。

document.querySelectorAll('[name^=arreglo]'); 
+0

'getElementByTagName'を使用している場合は、' name'属性ではなくタグ名を指定する必要があります。 –

+0

@MattSpinksおっと! idと混同され、編集されました。 – Sergio10

関連する問題