我正在尝试使用javascript从复选框中获取值。
我只想将一个复选框值传递给javascript函数,如果选择了多个,则会出现一个警告框,通知只能检查一个框的功能。
我试过这个:
var publish_trigger = document.querySelector("#publish_trigger");
publish_trigger.onclick = function() {
var _posts = document.getElementsByName('post_id[]');
var check = _posts.checked;
var boxes = _posts.length;
var txt = "";
if(check.length > 1) {
alert("Only one at a time");
} else {
for (i = 0; i < boxes; i++) {
if (_posts[i].checked) {
txt = txt + _posts[i].value + " "
}
}
}
alert(txt);
return false;
}
答案 0 :(得分:0)
此代码错误:
var _posts = document.getElementsByName('post_id[]');
var check = _posts.checked;
getElementsByName()
返回一个NodeList(实际上是一个数组)元素,因此您的变量_posts
没有checked
属性。您需要遍历_posts
来计算_posts
中各个元素的已检查属性。
你已经有了一个for循环,所以在那里添加验证:
var count = 0;
for (var i = 0; i < boxes; i++) {
if (_posts[i].checked) {
if (++count > 1) {
alert("Only one checkbox may be checked at a time.");
return false;
}
// I don't know what you're trying to do with the following line
// but I've left it in.
txt = txt + _posts[i].value + " "
}
}
(注意:与您的问题无关,您应该在函数中声明循环计数器i
,否则它将是全局的,如果您在其他地方也使用它,可能会导致难以调试问题。)< / p>