当为每个复选框jquery创建输入检查复选框时 如何获取名称的所有输入?
如果选中复选框,则创建输入:
<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 :(得分:1)
您需要迭代所有输入,例如:
$(".cbox").each(function(){
var item = $(this).val();
console.log(item);
});
答案 1 :(得分:1)
var item=[];
$(".cbox").each(function(){
item.push($(this).val());
});
答案 2 :(得分:1)
var items = document.querySelectorAll('.cbox');
var values = [];
items.forEach(function(item) {
values.push(item.value);
});
console.log(values);
答案 3 :(得分:0)
因为val()的documentation状态只返回集合中的第一个项目。您需要遍历集合并阅读每个项目的值。
因此,您需要遍历集合并构建列表。您可以使用each()或map()
来完成
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(","))
&#13;
<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>
&#13;