2013-08-20 33 views
0

工作,有人可以帮助我解决这个问题功能没有用的document.all

JavaScript代码:

function CheckAll(pObj) { 
     var mCurrStatus; 
     mCurrStatus = pObj.checked; 
     var mObjList; mObjList = document.all["process"]; 
     for (x = 0; x <= 2; x++) { 
      var Obj; 
      Obj = mObjList[x]; 
      Obj.checked = mCurrStatus; 
     } 
} 

ASP经典代码:

response.Write "<td nowrap><input type=checkbox name=process_1 " 
response.Write "/>box1</td>" 
response.Write "<td nowrap><input type=checkbox name=process_2 " 
response.Write "/>box2</td>" 

,这是我的全选框:

response.Write "<th align=left><input type=checkbox onclick=CheckAll(this)></th>" 

how d OI选择放入系统箱子当我点击全选框(它似乎是功能不起作用) 请帮我,而不是给我的例子......非常感谢你小子求助〜

更新时间:

我指的是罗兰的建议和使新功能,但不工作任何想法?

功能CheckAll(){

var eles = []; 
var len = elems.length; 
//var inputs = document.getElementsByTagName("input"); 
var elems = tab.getElementsByTagName("input"); 
for (var i = 0; i < len; i++) { 
    if (elems[i].name.indexOf('process_') == 0) { 
     eles.push(elems[i]); 
    } 
} 

//var elems = tab.getElementsByTagName("input"); 
for (var x = 0; x < len; x++) { 
    if (elems[x].type == "checkbox") { 
     elems[x].checked = true; 
    } 


} 

}

+0

此外,你可以编辑你的问题... –

+0

要Dimitar,我已经上传这些代码在评论字段 – Luk

+1

'document.all'是非标准的,不推荐使用。使用'document.getElementById'或'document.getElementsByName' –

回答

1

这是你如何选择和检查所有的复选框:

首先找到你的元素(这是vanilla.js):

// will find all the html elements that have a name containing the value passed 
var find = function(name) { 
    // you can optimize this part a bit (pass the tag name) 
    var elements = document.getElementsByTagName("*"); 
    var results = []; 
    for(var i = 0; i < elements.length; i++) { 
     var elementName = elements[i].name; 
     if(elementName !== undefined && elementName.indexOf(name) != -1) { 
      results.push(elements[i]);    
     } 
    } 
    return results; 
}; 

然后这就是你如何使用这个“实用工具”功能来检查所有:

var checkAll = function() { 
    var checkBoxes = find("process"); 
    for(var i = 0; i < checkBoxes.length; i++) { 
     checkBoxes[i].checked = true; 
    } 
} 

这里是一个小提琴:

http://jsfiddle.net/BuacB/1/

作为一个侧面说明,这里该位是无效的HTML(你缺少一些报价):

response.Write "<td nowrap><input type=checkbox name=process_1 " 
response.Write "/>box1</td>" 

我它必须是:

response.Write "<td nowrap><input type='checkbox' name='process_1' " 
response.Write "/>box1</td>" 
+0

@Dimitrov我已经提到了你的代码(找到你的元素)和“实用程序”函数的两个函数,但我仍然不能查看我的一个盒子 – Luk

+0

@Luk你是否修复了你的标记?当你说“我的一个盒子“这是否意味着它适用于其余的? –

+0

回应。写入“ box1”< - 我的盒子里的这些代码都很好,我只是想如何使用你的功能进入我的程序,你能帮忙吗? THX〜 – Luk