我遇到了一些问题。这是一个简短的解释。
我在标准表单上有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);
答案 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;
答案 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);