jQuery,复选框已选中

jQuery, checkbox checked

我有以下代码:

<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 :/

开头

有什么想法吗?

谢谢, 孤独

声明一个数组并将所有值压入其中,示例:

   var selected = [];
   function displayVals() {
      var checkedValues = $('input:checkbox:checked').each(function() {
         selected.push(this.value);
      });
   }

 var stringArray =  selected.join();

使用array join将数组转换为字符串

试试这个

function displayVals() {
    var names = $('input[type="checkbox"]:checked').map(function() {
      return this.value;
    }).get();

     return names;
}

myform 这样的表单 ID 并简单地使用:

$('#myform').serialize();

Note: It will not give unchecked checkboxes values

如果您还想获得未选中的值,那么您需要在序列化之前明确设置未选中复选框的值为 false。

$('#myform').find(':checkbox:not(:checked)').attr('value', false);

尝试 select 每个调用的输入 = "type"。您必须像这样修改 displayVals 中的 input 标签

function displayVals() {
var checkedValues = $('input[name=type]:checked').map(function() {
alert(this.value);
});

Is there a way to get all the checked values in one string ?

在您的地图中,return 复选框值,然后使用 get() 从 jQuery 对象中检索 JavaScript 值数组。最后,使用join()转换为逗号分隔的字符串。

var checkedValues = $('input:checkbox:checked').map(function() {
    return this.value;
}).get().join(',');

结果将是(全部选中):

Club,Pub,Home,Concert