2017-05-31 21 views
1

各チェックボックスでチェックボックスをオンにした場合jquery create input 名前ですべての入力を取得するにはどうすればよいですか?複数のテキストを同じ名前で取得するにはどうすればよいですか?

チェックボックスが入力作成チェックした場合:

<script> 
function dynInput(cbox) { 
    if (cbox.checked) { 
     var input = document.createElement("input"); 
     input.type = "text"; 
     input.className = "cbox"; 
     var div = document.createElement("div"); 
     div.className = "cbox-div"; 
     div.id = cbox.name; 
     div.innerHTML =cbox.name; 

     div.appendChild(input); 
     document.getElementById("insertinputs").appendChild(div); 
    } else { 
     document.getElementById(cbox.name).remove(); 
    } 
}</script> 

は、チェックボックスと入力:

 <form class="add-item"> 
      <input type="checkbox" onclick="dynInput(this);" name="1"> 1<br> 
      <input type="checkbox" onclick="dynInput(this);" name="2"> 2<br> 
      <input type="checkbox" onclick="dynInput(this);" name="3"> 3<br> 
      <input type="checkbox" onclick="dynInput(this);" name="4"> 4<br> 
     </form> 
     <p id="insertinputs"></p> 

を私は最初の入力値を取得することができます:

var item = $(".cbox").val(); 

    console.log(item); 
+0

)(各()またはマップでそれを行うことができます。コレクションをループして各アイテムの値を読み取る必要があります。 – epascarello

答えて

1

あなたはすべてを反復処理する必要があります次のような入力:

$(".cbox").each(function(){ 
    var item = $(this).val(); 
    console.log(item); 
}); 
+0

これはうまくいきます tnx –

+0

すごいです。ようこそ@LintonSamuelDawson ... ':)'! – vijayP

1
var item=[]; 
$(".cbox").each(function(){ 
item.push($(this).val()); 
}); 
0

documentationはval()の状態であるため、コレクションの最初の項目のみを返します。コレクションをループして各アイテムの値を読み取る必要があります。

したがって、コレクションをループしてリストを構築する必要があります。それが唯一のコレクション内の最初の項目を返します)(ヴァルのドキュメント状態としてので、あなたは

var vals1 = []; 
 
$('[type="checkbox"]').each(function() { 
 
    vals1.push(this.value); 
 
}); 
 

 
var vals2 = $('[type="checkbox"]').map(function() { 
 
    return this.value; 
 
}).get(); 
 

 
console.log("vals1", vals1.join(",")) 
 
console.log("vals2", vals2.join(","))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="checkbox" value="a"> 1<br> 
 
<input type="checkbox" value="b"> 2<br>

1
var items = document.querySelectorAll('.cbox'); 

var values = []; 

items.forEach(function(item) { 
    values.push(item.value); 
}); 

console.log(values); 
関連する問題