2012-01-31 99 views
1

我只是想知道如何在onClick按鈕中獲得文本字段的值。 我得到這個:Javascript - 如何訪問onClick按鈕中的文本字段的值?

<INPUT TYPE="text" NAME="GetLink_textField" VALUE="Geben Sie den Dateipfad an!" SIZE=50> 
<INPUT TYPE="button" NAME="GetLink_button" VALUE="Get link" onClick="getLinkToFile(?????)"> 

我要傳遞的功能文本字段GetLink_textfield的價值。我該怎麼做呢? 我試過GetLink_textfield.value,但不起作用。

+0

嘗試使用'this'變量來引用剛纔點擊的對象 – hackartist 2012-01-31 07:48:38

+0

hackartist:OP沒有試圖訪問被點擊的對象。 OP將能夠獲得他們想要的對象的唯一方法將如下: this.previousSibling.value; 不理想。 – Shane 2012-01-31 07:53:52

回答

2

GetLink_textfield.value不起作用的原因是因爲沒有名爲GetLink_textfield的對象。

您需要使用下面的代碼:

function getLinkToFile() { 
    var e = document.getElementsByName('GetLink_textField')[0]; 
    var val = e.value; 
    // Do the rest here 
} 
+0

但請注意,與IDS不同,元素名稱不必是唯一的。如果您的網頁有多個該名稱,您需要有一個確定哪一個適用的方法。 – HBP 2012-01-31 08:09:18

+0

這是絕對正確的。名稱不需要是唯一的,而ID則可以。 如果您有多個實例,'e'可能不在第0個索引上,如上所述。建議爲對象分配一個唯一的ID。 – Shane 2012-01-31 08:12:25

1
document.getElementsByName("GetLink_textField")[0].value 

它可能會更好,如果你給文本框的ID,但是,使用的document.getElementById( 「GetLink_textField」)。

這樣,您將獲得該對象,而不是包含它的數組,因爲ID必須是唯一的,但名稱不能。

0

將ID屬性添加到文本字段,然後在javascript函數中使用該ID來獲取該值。你不需要發送任何arguement.Example-

function getLinkToFile(){ 
     var textVal=document.getElementById('idname').value; 
} 
0

如果你使用程序生成的輸入或想要使用的元素超過1套(輸入按鈕,輸入文本),嘗試着做一些棘手的事情一樣這樣的:

做一個「對」或東西,追加了「」變量(通常被稱爲「I」),以輸入文本名稱,按鈕和JavaScript函數,結果會產生這樣的事情:

<INPUT TYPE="text" NAME="GetLink_textField_0" VALUE="Geben Sie den Dateipfad an!" SIZE=50> 
<INPUT TYPE="button" NAME="GetLink_button_0" VALUE="Get link" onClick="getLinkToFile(0)"> 

<INPUT TYPE="text" NAME="GetLink_textField_1" VALUE="Geben Sie den Dateipfad an!" SIZE=50> 
<INPUT TYPE="button" NAME="GetLink_button_1" VALUE="Get link" onClick="getLinkToFile(1)"> 

<INPUT TYPE="text" NAME="GetLink_textField_2" VALUE="Geben Sie den Dateipfad an!" SIZE=50> 
<INPUT TYPE="button" NAME="GetLink_button_2" VALUE="Get link" onClick="getLinkToFile(2)"> 

然後在你的功能:

function getLinkToFile(position){ 
    var inputVal = document.getElementsByName("GetLink_textField_" + position)[position].value; 
    //now you got inputVal of the element in the position you want. 
} 

希望這有助於,如果這不是你所需要的,你可以嘗試從上面的例子。

此外,是一個很好的建議使用Id的輸入。

問候!

相關問題