3 回答
TA贡献1条经验 获得超0个赞
<script type="text/javascript">
function checkall(){
var hobby = document.getElementsByTagName("input");
for(i=0;i<hobby.length;i++){
if(hobby[i].type=="checkbox"){
hobby[i].checked=true;
}
}
// 任务1
}
function clearall(){
var hobby=[];
var input = document.getElementsByTagName("input");
for(var i=0;i<input.length;i++){
if(input[i].getAttribute('name')=='hobby'){
hobby.push(input[i])
}
}
for(i=0;i<hobby.length;i++){
if(hobby[i].type=="checkbox"){
hobby[i].checked=false;
};
}
// 任务2
}
function checkone(){
var j=document.getElementById("wb").value;
var input = document.getElementsByTagName("input");//这句不能少,要不系统不知道hobby.是什么东西
var hobby=[];
for(var i=0;i<input.length;i++){
if(input[i].getAttribute('name')=='hobby'){
hobby.push(input[i])
}
}
if(j>6||j<=0){
console.log("请确认输入的值!")
}
else{
//我这里要写的是
//A:实现1,3这种识别方法,识别第一个和第三个选框??????????
//B:若有勾已经被选中了,则去除那个才选中别的
clearall();//在执行输入框选择前先清除先前的选择,但是一运行这句话后hobby[j-1].
//checked=true就不起作用了,为什么?
hobby[j-1].checked=true;
console.log(hobby[j-1]); //这里也不显示相关信息,不知道哪里用错了?
}
// 任务3
}
</script>
获取的input name=hobby方法不是很对
TA贡献9条经验 获得超1个赞
你的clearall函数里的for(i=0;hobby.length;i++){
改为for(i=0;i<hobby.length;i++){
然后你现在实现的识别只能单选的1-6,如果用1,3这种形式就会,因为j='1,3'出现无法识别hobby[j-1]的错误。
如果要多选,checkone函数要改成:
function checkone(){ var j=document.getElementById("wb").value; var hobby = document.getElementsByName("hobby");//这句不能少,要不系统不知道hobby.是什么东西 //j得到的是1,3,4这样的字符串 if(j=='') alert("请确认输入的值!"); else{ var str=j.split(',');//通过分割','符号分割成数组[1,3,4] clearall(); for(var i=0;i<str.length;i++){ if(0<str[i] && str[i]<7) hobby[str[i]-1].checked=true; } } }
TA贡献13条经验 获得超1个赞
var hobby = document.getElementsByName("hobby");
这句是获取名称为‘hobby’的对象的集合。
至于其他问题都是因为下面这段代码错了
for(i=0;hobby.length;i++){
应该为
for(i=0; i < hobby.length; i++){
添加回答
举报