2016-06-15 4 views
0

ユーザーがボタンをクリックしたときに入力フィールドIDを動的に作成するにはどうすれば設定できますか? 私は、クリック時に作成されるテキストフィールドとコンボボックスのペアを持っています。したがって、ユーザーがクリックして1つのペアを作成するたびに、これらの値のペアを後で取得できるように配列に保存できるように、それらに一意のIDを割り当てる必要があります。動的に作成する入力要素のIDを設定する

function createattr() { 
    var input = document.createElement("input"); 
    input.type = "text"; 
    input.placeholder="Attribute name"; 
    input.className = "attr-textfield-style"; 
    inputval.appendChild(input); 

    //Display the drop down menu 

    var newDiv=document.createElement('div'); 
    var html = '<select>', attrtypes = typeGenerate(), i; 
    for(i = 0; i < attrtypes.length; i++) { 
     html += "<option value='"+attrtypes[i]+"'>"+attrtypes[i]+"</option>"; 
    } 
    html += '</select>'; 
    newDiv.className="attr-combobox-style"; 
    newDiv.innerHTML= html; 
    inputval.appendChild(newDiv); 

} 

答えて

1

解決済み。これは簡単な1行でした。ちょうどこれを将来の参考にしたいと思っていました。 attrIDと

input.id="attr"+attrID; 

は、各入力フィールドはそのようIDに私はちょうど「ATTR」の文字列を追加し、一意のID

が割り当てられるように、関数が終了する前にインクリメントされるグローバル変数として宣言されていますこのテキストフィールドと共に選択されたコンボボックスは、同じ数字を持ちます(つまり、1対 - >テキストフィールドID-attr3、コンボボックスタイプ-3、次のペアは - >テキストフィールドID-attr4、コンボボックスタイプ-4)

0

if要素が削除されることはありません。既存の要素を数え、それに応じてIDを指定することができます。

var newId = document.getElementsByClassName('attr-combobox-style').length; 
input.id = 'attr' + newId; 

それとも、タイムスタンプを使用することができ、それは絶対にユニークになります。

input.id = 'attr' + new Date().getTime(); 
+0

私の場合には、要素が選択時に削除することができますので、タイムスタンプが素晴らしいサウンドが、私は、これを使用することはできません。私はそれを乗り越えるつもりです。提案してくれてありがとう、 –

関連する問題