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++){
添加回答
舉報