2013-08-28 44 views
0

我有一個腳本,其中我想獲得表單的佔位符屬性,然後作爲條件在像這樣的函數來使用(這看起來不正確我,所以我並不感到驚訝它不工作):如何避免測試窗體的「input.placeholder」屬性的JavaScript函數

if (document.getElementsByName("Name").input.placeholder == "Enter Name") { 
    //do something 
} 

包裝函數實際上採取的形式作爲參數:

function form_function(form) { 
    var input = document.getElementsByName("Name"); 
    var placeholder = input.placeholder; 

    if (placeholder == "Empty") { 
     // do something 
    } 
} 

我已經嘗試了一些不同的事情,沒有無濟於事。錯誤控制檯告訴我輸入未定義。例如,我開始:

var placeholder = form.input.placeholder;

而且也不能工作。

我然後跑一些警報測試時,我只是提醒輸入我得到NodeList對象,我不知道該如何處理。

所以,我想通過NodeList循環並得到了一些對象,我不知道該如何使用。

var inputList = document.getElementsByName("Name"); 

var inputArray = []; 

for (var i = 0; i < inputList.length; i++) { 
    inputArray[i] = inputList[i]; 
    alert(inputArray[i]); 
} 

警報給[object HTMLInputElement]

基本上,我只是想測試對在與特定的name屬性的形式佔位符值。似乎我已經錯了......

謝謝。

+1

'getElementsByName'返回'NodeList':如果仔細觀察,「Elements」是複數。你希望'document.getElementsByName(「Name」)[n]'獲得名爲'Name'的第n個元素,並且你可以使用document.getElementsByName(「Name」)[n] .placeholder'獲得其佔位值。 – apsillers

+0

是的,我剛剛意識到這一點,因爲我把問題解決了。在我的情況下,列表中只有一個對象,所以我使用了'document.getElementsByName(「Name」)[0] .placeholder',但它仍然不能正常工作......我將用結果更新我的問題。儘管如此,謝謝你們! – nicorellius

+0

@apsillers - 你會提供一個答案?我會接受它... – nicorellius

回答

0

作爲@apsillers正確地指出,所述元件重新接通是在陣列所以我需要捕獲我所需要的一個。我去的:

placeholder = document.getElementsByName("Name")[0].placeholder;

,然後能夠根據需要在功能使用此。

相關問題