jQuery,复选框已选中

时间:2015-03-17 12:10:22

标签: jquery ajax checkbox

我有以下代码:

<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

5 个答案:

答案 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);
});