我在页面上有一些带有标题的复选框,我想要检查所有复选框并使用jQuery对应该复选框的信息?
最终,我想提交一份包含用户所选内容的表单。但由于表单不知道,我需要在用户点击打开表单的按钮时获取信息。
谢谢!
<section id="myoptions">
<label for="123">
<div class="thisineed">Want this text</div>
<div><input type="checkbox" id="123"></div>
<div class="thisaswell">This one I want as well</div>
</label>
<label for="124">
<div class="thisineed">Want this text</div>
<div><input type="checkbox" id="124"></div>
<div class="thisaswell">This one I want as well</div>
</label>
</section>
答案 0 :(得分:4)
您可以使用它来访问选中的复选框:
$('input[type=checkbox]:checked').each(function(){
console.log(this);
});
这是一个例子给你。有点不清楚你在寻找什么,但检查一下:
$('#get_form').click(function () {
$('input[type=checkbox]:checked').each(function () {
console.log(my_form);
var somevalue = $(this).parent().next('.thisaswell').text();
console.log(somevalue);
$('#my_form').append('<input type="hidden" value="'+somevalue+'" />')
});
});
这个 demo 会在我添加的表单中生成隐藏的输入,例如来自div的文本。
答案 1 :(得分:1)
我建议:
$('#getOptions').click(function (e) {
e.preventDefault();
var opts = $('input[type="checkbox"]').filter(function () {
return this.checked;
}).map(function () {
var p = $(this).closest('div');
return [p.prev().text(), p.next().text()];
}).get(),
hidden = $('<input />', {
'type': 'hidden'
});
$.each(opts, function (i, v) {
hidden.clone().val(v).appendTo('form');
});
});
参考文献:
答案 2 :(得分:0)
您可以使用:checkbox选择器获取复选框,使用:checked过滤器获取选中的复选框,然后使用.map()从这些复选框中获取所需数据
var array = $('#myoptions input').filter(':checkbox:checked').map(function(){
return { id: this.id, value: this.value}
}).get()
答案 3 :(得分:0)
试试这个
var checkboxvalue='';
$('#myoptions input[type="checkbox"]').each(function(){
var this_input=$(this);
if(this_input.is(':checked')){
checkboxvalue += this_input.attr('value') ;
}
})
alert(checkboxvalue)