我有以下代码:
<form>
<input type="checkbox" name="type" value="Club" onclick="getselectedcheckbox()"checked/>Club<br/>
<input type="checkbox" name="type" value="Pub" onclick="getselectedcheckbox()" checked/>Pub<br/>
<input type="checkbox" name="type" value="Home" onclick="getselectedcheckbox()"/>Home<br/>
<input type="checkbox" name="type" value="Concert" onclick="getselectedcheckbox"/>Concert<br/>
<script>
function displayVals() {
var checkedValues = $('input:checkbox:checked').map(function() {
alert(this.value);
});
}
$( "select" ).change( displayVals );
displayVals();
</script>
我正在尝试检查所有复选框,然后使用ajax发送它。 但是现在,我为每个复选框提供了1个不同的警报,有没有办法在一个字符串中获取所有选中的值?
我听说过.join(),但我真的不知道在我的代码中把它放在哪里。仍然以Javascript / jquery开头:/
有什么想法吗?
谢谢, Loneept
答案 0 :(得分:4)
声明一个数组并将所有值推入其中,例如:
var selected = [];
function displayVals() {
var checkedValues = $('input:checkbox:checked').each(function() {
selected.push(this.value);
});
}
var stringArray = selected.join();
使用array join将数组转换为字符串
答案 1 :(得分:3)
有没有办法在一个字符串中获取所有选中的值?
在地图中,返回复选框值,然后使用get()
从jQuery对象中检索JavaScript数组值。最后,使用join()
转换为以逗号分隔的字符串。
var checkedValues = $('input:checkbox:checked').map(function() {
return this.value;
}).get().join(',');
结果将是(全部选中):
Club,Pub,Home,Concert
答案 2 :(得分:1)
提供类似myform
的表单ID,只需使用:
$('#myform').serialize();
注意:它不会提供未选中的复选框值
如果您还希望获得未经检查的值,则需要在序列化之前明确设置未选中复选框的值为false。
$('#myform').find(':checkbox:not(:checked)').attr('value', false);
答案 3 :(得分:0)
试试这个
function displayVals() {
var names = $('input[type="checkbox"]:checked').map(function() {
return this.value;
}).get();
return names;
}
答案 4 :(得分:0)
尝试选择名为=“type”的每个输入。你必须像这样修改displayVals中的input
标签
function displayVals() {
var checkedValues = $('input[name=type]:checked').map(function() {
alert(this.value);
});