我得到的代码是这样的:
<input class="messageCheckbox" type="checkbox" value="3" name="mailId[]">
<input class="messageCheckbox" type="checkbox" value="1" name="mailId[]">
我只需要Javascript来获取当前选中的复选框的值。
编辑:要添加,将只有一个复选框。
我得到的代码是这样的:
<input class="messageCheckbox" type="checkbox" value="3" name="mailId[]">
<input class="messageCheckbox" type="checkbox" value="1" name="mailId[]">
我只需要Javascript来获取当前选中的复选框的值。
编辑:要添加,将只有一个复选框。
当前回答
在纯javascript中:
function test() {
var cboxes = document.getElementsByName('mailId[]');
var len = cboxes.length;
for (var i=0; i<len; i++) {
alert(i + (cboxes[i].checked?' checked ':' unchecked ') + cboxes[i].value);
}
}
function selectOnlyOne(current_clicked) {
var cboxes = document.getElementsByName('mailId[]');
var len = cboxes.length;
for (var i=0; i<len; i++) {
cboxes[i].checked = (cboxes[i] == current);
}
}
其他回答
在我的项目中,我通常使用以下片段:
var type[];
$("input[name='messageCheckbox']:checked").each(function (i) {
type[i] = $(this).val();
});
而且效果很好。
如果你使用的是语义UI React,数据会作为第二个参数传递给onChange事件。
因此,您可以按以下方式访问选中的属性:
<Checkbox label="Conference" onChange={(e, d) => console.log(d.checked)} />
我在我的代码中使用这个。试试这个
var x=$("#checkbox").is(":checked");
如果复选框被选中,则x为真,否则为假。
惊讶地发现这里没有可用的普通JavaScript解决方案(当您遵循最佳实践并为每个HTML元素使用不同的id时,投票最多的答案是无效的)。然而,这对我来说很管用:
Array.prototype.slice.call(document.querySelectorAll("[name='mailId']:checked"),0).map(function(v,i,a) {
return v.value;
});
对于现代浏览器:
var checkedValue = document.querySelector('.messageCheckbox:checked').value;
使用jQuery:
var checkedValue = $('.messageCheckbox:checked').val();
纯javascript没有jQuery:
var checkedValue = null;
var inputElements = document.getElementsByClassName('messageCheckbox');
for(var i=0; inputElements[i]; ++i){
if(inputElements[i].checked){
checkedValue = inputElements[i].value;
break;
}
}