根据checkBox或radio的勾选状态得到id数组

时间:2020-12-09 09:09:04
 $(function(){
var inputs = document.getElementsByTagName("input");
var realStrs = "";
var strs = "";
for (var i = 0; i < inputs.length; i++) {
var obj = inputs[i];
if (obj.type == "radio") {
if (obj.checked == true) {
realStrs += obj.id + ",";
}
}else if(obj.type == "checkbox"){
if(obj.checked == true){
strs += obj.id + ",";
}
}
}
realStrs = realStrs.substr(0,realStrs.length-1);
strs = strs.substr(0,strs.length-1);
var singleArray = realStrs.split(",");
var array = strs.split(",");
var result = [], isRepeated;
for (var i = 0, len = singleArray.length; i < len; i++) {
isRepeated = false;
for (var j = i+1, len = singleArray.length; j < len; j++) {
if (singleArray[i] == singleArray[j]) {
isRepeated = true;
break;
}
}
if (!isRepeated) {
result.push(singleArray[i]);
}
}
var result2 = [], isRepeated2;
for (var i = 0, len = array.length; i < len; i++) {
isRepeated2 = false;
for (var j = i+1, len = array.length; j < len; j++) {
if (array[i] == array[j]) {
isRepeated2 = true;
break;
}
}
if (!isRepeated) {
result2.push(array[i]);
}
}
for (var k = 0; k < result.length; k++) {
var realIds = result[k] - 99;
if(realIds>0){
document.getElementById(realIds).style.display = "none";
}
}
for (var j = 0; j < result2.length; j++) {
var ids = result2[j] - 100;
if(ids>0){
document.getElementById(ids).style.display = "none";
}
}
});

   这段代码是在查看问卷调查结果的时候用到的,一份问卷里面有单选题、多选题和问答题,(我这里不考虑最简单的问答题),

我的方法是:所有选项前面都有一个input,单选就是radio,多选就是checkbox,将查询到的结果进行判断,已选的选项前再加上

一个input,属性checked=“checked”,并将刚刚的input隐藏。

for (var k = 0; k < result.length; k++) {

  var realIds = result[k] - 99;
if(realIds>0){
document.getElementById(realIds).style.display = "none";
}
}
for (var j = 0; j < result2.length; j++) {
var ids = result2[j] - 100;
if(ids>0){
document.getElementById(ids).style.display = "none";
}
}
其中result[k]-99,表示的是选中的选项是有两个input的,只是将其中一个没选中的隐藏了。
————————————————————————————————————————————————————————————————————————————————————————————
  大家要看的只是我得到checked的属性的id就可以了,其他的可作为参考。