2011-10-03 18 views
0

我從使用ajax的XML格式的服務器獲取一些值。格式是這樣的:java腳本中的動態複選框長度

<employees><employee><id>Id</id><employeeName>Name</employeeName></employee>.....</employees> 

所以處理這種反應我使用

if(employees.childNodes.length>0){ 
        for (loop = 0; loop <  employees.childNodes.length; loop++) { 
        var employee = employees.childNodes[loop]; 
        var ids = employee.getElementsByTagName("id")[0].childNodes[0].nodeValue; 
        var name = employee.getElementsByTagName("employeeName")[0].childNodes[0].nodeValue; 
        s=s+'<input name=\"userAction'+type+'\" id=\"userAction'+type+'\" value=\"'+ids+'\" type=\"checkbox"\/>'+name+'<br\/>';    


        } 
             document.getElementById('div'+type).innerHTML=s;       
} 

我能夠成功地展示了沒有。的用戶。但我的問題是,當我點擊提交功能,我想知道沒有的長度。的chekboxes。正如你看到我在特定的div中使用同一個名稱的所有checkox。

var lennt=document.frm["userAction"+i].length; 
       alert(lennt) 

如果有超過1個用戶lenght是好的,但對於一個用戶它給我「未定義」 請幫我...

回答

1

你必須是如果沒有問題"userAction"+i然後document.frm["userAction"+i]的元素是undefined,如果只有1個,那麼document.frm["userAction"+i]是對一個DOM節點的引用,因此沒有length屬性,如果有> 1,document.frm["userAction"+i]是對DOMNodeList的引用,所以存在一個length屬性。解決方案:做一些這樣的測試:

var checkboxes = document.frm["userAction"+i]; 
var lennt = 0; // default 
if (checkboxes) { // checkboxes is not undefined 
    // assign value based on whether checkboxes.length is defined 
    lennt = (checkboxes.length) ? checkboxes.length : 1; 
} 
+0

非常感謝你,我被困在這個問題。再次感謝.... – vikas27

+0

不客氣。 – megaflop