即使未选中,也会获取复选框值?

时间:2015-06-16 14:27:21

标签: javascript jquery

有没有办法获取所有复选框的值,即使它们未被选中?

HTML:

<input type="checkbox" name="color[]" value="1"/>
<input type="checkbox" name="color[]" value="2"/>
...

JS:

$("input[name='color[]']").serialize();

像上面这样的东西,但即使没有检查它我也想要这些值。也许我需要在序列化之前将它们放入数组中?

2 个答案:

答案 0 :(得分:2)

  1. 克隆它们以避免更改复选框的原始状态
  2. 将已克隆的项目设置为true
  3. 序列化
  4. &#13;
    &#13;
    document.write($('input[name="color[]"]').clone().prop('checked', true).serialize());
    &#13;
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
    <input type="checkbox" name="color[]" value="1" />
    <input type="checkbox" name="color[]" value="2" />
    &#13;
    &#13;
    &#13;

答案 1 :(得分:2)

似乎缺少简单的解决方案,所以:

var serializedValues = $('input[name="color[]"]').map(function(i, e) {
  return encodeURIComponent(e.name) + "=" + encodeURIComponent(e.value);
}).get().join("&");
snippet.log(serializedValues);
<input type="checkbox" name="color[]" value="1" />
<input type="checkbox" name="color[]" value="2" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>

假设你真的想要seralize给你的相同输出。