如何在jquery

时间:2016-10-04 11:32:51

标签: javascript jquery html checkbox

只想询问我是否可以根据可用的复选框数量设置默认值。例如,我有3个复选框,我希望默认值为 0,0,0 ,因为我有3个复选框。如果用户单击第一个复选框,则第一个 0 将替换为 1 ,因为第一个复选框的值的值为 1 ,与其他复选框相同。如果用户取消选中第一个复选框,它将返回其默认值 0 。我已经嵌入了我的代码片段。提前谢谢你们。



$('input#category').on('change', function () {
        var selectedCategories = $('.category:checkbox:checked').map(function () {
            return this.value;
        }).get();
        $('#post_category').val(selectedCategories);

    });

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="checkbox" value="1" id="category" name="category" class="category category_1">Category 1
<input type="checkbox" value="2" id="category" name="category" class="category category_2">Category 2
<input type="checkbox" value="3" id="category" name="category" class="category category_3">Category 3
<br />
<h5>Result:</h5>
<input type="text" id="post_category">
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:1)

检查您的代码中是否有多个元素具有相同的idname属性,并且应该是唯一的。

change事件处理程序上,无需对所有选中的复选框输入进行映射/迭代,因为已更改的元素复选框具有属性valuechecked

var arr = [0, 0, 0],
    setPostCategory = function() {
      arr[this.value - 1] = (this.checked) ? this.value : 0;
      $('#post_category').val(arr.join(', '));
    };

$('input.category').on('change', setPostCategory);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<input type="checkbox" value="1" name="category1" class="category">Category 1
<input type="checkbox" value="2" name="category2" class="category">Category 2
<input type="checkbox" value="3" name="category3" class="category">Category 3

<br>

<h5>Result:</h5>
<input type="text" id="post_category" value="0, 0, 0">

答案 1 :(得分:0)

$(&#39;#post_category&#39)空();

$(&#39;#post_category&#39;)VAL(selectedCategories);

答案 2 :(得分:0)

您已经这样做了,只需检查是否在映射中检查了这些框

&#13;
&#13;
var elems = $('.category[type="checkbox"]').on('change', function() {
    var selectedCategories = elems.map(function() {
        return this.checked ? +this.value : 0;
    }).get();

    $('#post_category').val(selectedCategories);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="checkbox" value="1" id="category1" name="category" class="category category_1">Category 1
<input type="checkbox" value="2" id="category2" name="category" class="category category_2">Category 2
<input type="checkbox" value="3" id="category3" name="category" class="category category_3">Category 3
<br />
<h5>Result:</h5>
<input type="text" id="post_category">
&#13;
&#13;
&#13;

注意选择器更改。您可以为所有三个输入设置相同的类名,但他们不能具有相同的ID,因为ID是唯一的