所以我的代码看起来像这样:
<input class="messageCheckbox" type="checkbox" value="3" name="mailId[]">
<input class="messageCheckbox" type="checkbox" value="1" name="mailId[]">
我只需要使用Javascript来获取当前检查的任何复选框的值。
编辑:要添加,只会有一个复选框。
答案 0 :(得分:218)
以上都不适合我,只是使用它:
document.querySelector('.messageCheckbox').checked;
快乐的编码。
答案 1 :(得分:216)
适用于现代浏览器:
var checkedValue = document.querySelector('.messageCheckbox:checked').value;
使用jQuery
:
var checkedValue = $('.messageCheckbox:checked').val();
没有jQuery
的纯javascript :
var checkedValue = null;
var inputElements = document.getElementsByClassName('messageCheckbox');
for(var i=0; inputElements[i]; ++i){
if(inputElements[i].checked){
checkedValue = inputElements[i].value;
break;
}
}
答案 2 :(得分:101)
我在我的代码中使用它。试试这个
var x=$("#checkbox").is(":checked");
如果选中该复选框,则x
将为true,否则将为false。
答案 3 :(得分:11)
in plain 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);
}
}
答案 4 :(得分:4)
$(document).ready(function() {
var ckbox = $("input[name='ips']");
var chkId = '';
$('input').on('click', function() {
if (ckbox.is(':checked')) {
$("input[name='ips']:checked").each ( function() {
chkId = $(this).val() + ",";
chkId = chkId.slice(0, -1);
});
alert ( $(this).val() ); // return all values of checkboxes checked
alert(chkId); // return value of checkbox checked
}
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input type="checkbox" name="ips" value="12520">
<input type="checkbox" name="ips" value="12521">
<input type="checkbox" name="ips" value="12522">
&#13;
答案 5 :(得分:4)
这不会直接回答问题,但可能有助于未来的访问者。
如果您希望变量始终是复选框的当前状态(而不是必须继续检查其状态),则可以修改onchange
事件以设置该变量。
这可以在HTML中完成:
<input class='messageCheckbox' type='checkbox' onchange='some_var=this.checked;'>
或使用JavaScript:
cb = document.getElementsByClassName('messageCheckbox')[0]
cb.addEventListener('change', function(){some_var = this.checked})
答案 6 :(得分:2)
使用此:
alert($(".messageCheckbox").is(":checked").val())
这假设要检查的复选框是否具有“messageCheckbox”类,否则您必须检查输入是否为复选框类型等。
答案 7 :(得分:0)
如果您正在使用Semantic UI React,则会将data
作为第二个参数传递给onChange
事件。
因此,您可以按如下方式访问checked
属性:
<Checkbox label="Conference" onChange={(e, d) => console.log(d.checked)} />
答案 8 :(得分:0)
<input class="messageCheckbox" type="checkbox" onchange="getValue(this.value)" value="3" name="mailId[]">
<input class="messageCheckbox" type="checkbox" onchange="getValue(this.value)" value="1" name="mailId[]">
function getValue(value){
alert(value);
}
答案 9 :(得分:0)
上面的任何一项对我来说都没有起作用,而没有选中该框,因此不会在控制台中引发错误,因此我沿这些方式做了一些事情(onclick和checkbox函数仅用于演示目的,在我的用例中是更大的表单提交功能的一部分):
function checkbox() {
var checked = false;
if (document.querySelector('#opt1:checked')) {
checked = true;
}
document.getElementById('msg').innerText = checked;
}
<input type="checkbox" onclick="checkbox()" id="opt1"> <span id="msg">Click The Box</span>
答案 10 :(得分:0)
如果您想使用jQuery获取所有复选框的值,则可能会对您有所帮助。这将解析列表,并根据所需结果执行其他代码。顺便说一句,为此,不需要用方括号[]来命名输入。我放弃了他们。
$(document).on("change", ".messageCheckbox", function(evnt){
var data = $(".messageCheckbox");
data.each(function(){
console.log(this.defaultValue, this.checked);
// Do something...
});
}); /* END LISTENER messageCheckbox */
答案 11 :(得分:-3)
在我的项目中,我通常使用这个片段:
var type[];
$("input[name='messageCheckbox']:checked").each(function (i) {
type[i] = $(this).val();
});
它运作良好。 最好的。