var中的每个值复选复选框

时间:2018-06-07 11:01:37

标签: javascript jquery

我遇到了一些问题。这是一个简短的解释。

我在标准表单上有8个复选框。我需要做的是循环遍历var中的每个值检查复选框。 但我总是得到第一个checbox相同的价值?

到目前为止,我已经有了这段代码。

var ref_idee = "";
        $('.ajaxupdate:checked').each(function () {
                var sThisVal = $( this.checked ).val();
            //var sThisVal = (this.checked ? $('.ajaxupdate').val());
            ref_idee += (ref_idee=="" ? sThisVal : "," + sThisVal);
        });
        console.log (ref_idee);

2 个答案:

答案 0 :(得分:0)

除了拼写错误$(this.checked ).val();而不是$(this).val();之外,只有在检索到所有复选框而不是仅选中已复选的复选框时,您仍然需要无用且不正确的三元残余

完整的代码可能是



var ref_idee = [];
$('.ajaxupdate:checked').each(function() {
  ref_idee.push(this.value);
});
console.log(ref_idee.join(","));


//Or simpler

ref_idee = $('.ajaxupdate:checked').map(function() {
  return this.value;
}).get();
console.log(ref_idee.join(","));

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<input type="checkbox" class="ajaxupdate" value="1" checked />
<input type="checkbox" class="ajaxupdate" value="2" />
<input type="checkbox" class="ajaxupdate" value="3" checked />
&#13;
&#13;
&#13;

答案 1 :(得分:0)

试试这段代码。

$(this.checked).val(); 替换为 $(this).val();

        var ref_idee = "";
        $('.ajaxupdate:checked').each(function () {
                var sThisVal = $(this).val();                
            ref_idee += (ref_idee=="" ? sThisVal : "," + sThisVal);
        });
        console.log (ref_idee);