2013-02-05 61 views
0

我使用JS以警告變量(字段)的長度,但破碎時我的field.length應該是等於1variable.length未定義當長度= 1

當field.length大於1,一切正常。有任何想法嗎?

這是HTML代碼

<form> 
<someloop> 
<input class="checkbox" type="checkbox" name="mark" value="#recID#"> 
</someloop> 
<button class="btn btn-danger" type="button" onClick="dlte(mark);" >Delete</button> 
</form> 

JS代碼:

function dlte(field){ 
     alert(field.length); 
    } 
+0

您可以在內嵌JavaScript中使用變量'mark'。它的內容是什麼? – Sirko

回答

0

這是我發現我的問題

function(filed){ 
'var $srt = $(field); 
    alert($srt.length);' 
} 

同樣的解決方案,一個音符@DaHaka和@Steve H.

你推薦我不得不在我的varibale('mark')周圍添加單引號,但這最終導致我的代碼因爲某種原因而制動。當我將它們取走時,代碼開始按照我的需要工作。無論如何,感謝您的幫助和建議! :)

2
<button class="btn btn-danger" type="button" onclick="dlte('mark')" >Delete</button>  

function dlte(field){ 
    alert(document.getElementsByName(field).length); 
} 

如果您mark名是html元素的名稱,你應該使用getElementsByName屬性來獲取長度

+0

這將提醒名稱爲「mark」的節點數 –

+0

@SteveH。是的,就像OP想要的那樣... – tnanoba

+0

你的仍然輸出0.我沒有得到的是當我有長度大於1它輸出一切正常,但是當我的長度= 1它輸出0 ... – Geo

3

當您嘗試使用時,您無法傳遞DOM節點的引用你的onClick處理程序。

嘗試:

onclick="dlte('mark');" 

和功能:

function dlte(field) { 
    var nodes= document.getElementsByName(field); 
    alert(nodes[0].length); 
} 
+0

警報返回undefined了。如果我刪除'[0]'返回0,那麼它應該是1 – Geo

+0

@GeoNicolaidis你是對的,在你的情況下,你必須使用'getElementsByName'而不用'nodes'。看看我的例子 – tnanoba

+0

Ya,@DaHaKa我的壞 - 我認爲他已經添加了一個屬性到DOM節點。 –