2013-02-05 127 views
0

爲什麼這段代碼不起作用? 是否需要「id」屬性?獲取html輸入標記值

<html> 
<head> 
<script language="JavaScript"> 
    function pprint(){ 
    var a = tf.value; 
    document.write(a); 
    } 
</script> 
</head> 
<body> 
<input type="text" name="tf" value="Test"> 
<input type="button" onClick="pprint()" value="print" > 
</body> 
</html> 

謝謝!

+3

「不工作」是** **不是一個錯誤MES鼠尾草或問題描述。 – PeeHaa

+5

另外'document.write()'不是你想象的那樣。 – PeeHaa

回答

2

兩個變化。 'tf'是'id'並獲取javascript中的元素。並且如上面所建議的那樣'提醒'。

<html> 
<head> 
<script language="JavaScript"> 
    function pprint(){ 
    var tf = document.getElementById('tf'); 
    var a = tf.value; 
    alert(a); 
    } 
</script> 
</head> 
<body> 
<input type="text" id="tf" value="Test"> 
<input type="button" onClick="pprint()" value="print" > 
</body> 
</html> 
4

在一種形式中,需要name屬性與(namevalue)一對以填充$_POST$_GET全局變量。

JavaScript不會識別僅來自名稱的元素。所以,你最好使用id屬性。

<input type="text" name="tf" id="tf" value="Test"> 

在您的Javascript,你可以直接呼叫document.getElementById('tf')獲得該元素。

就是這樣。

document.write(document.getElementById('tf').value); 
0

爲什麼這個代碼不工作?

Javascript沒有給你一個準備好像你期待的元素上使用句柄。您必須通過名稱,ID,標籤名稱或通過其父表單(如果有)來獲取元素。

是否需要「id」屬性?

不,該ID不需要獲取該元素的句柄。按名稱獲取元素的例子:(使用getElementById法)或名稱

function pprint(){ 
    var a = document.getElementsByName("tf")[0].value; 
    console.log(a); 
} 
0

雖然使用JavaScript,如果您要訪問的任何元素,您可以使用其ID(使用getElementsByName法)

你可以使用下面的代碼:

<script language="JavaScript"> 
    function pprint(){ 
    // If you want to use element Id 
     var a = document.getElementById('tf').value; 
     document.write(a); 
    // If you want to access by element name 
     var b = document.getElementsByName('tf')[0].value; 
     document.write(b); 
} 
</script> 

這裏的工作演示鏈接:http://jsfiddle.net/73G2R/3/