[英]document.getElementById for an element in external html
我有這個HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Notas</title>
<script type="text/javascript" src="notas.js"></script>
</head>
<body>
<p>Nombre alumno: </p>
<input type="text" name="nombre" id="nombre">
<p>Nota alumno:</p>
<input type="text" name="nota">
<p><br></p>
<input type="button" name="boton" value="Enviar" onclick="respuesta()">
</body>
</html>
並將此Javascript放在另一個文件中:
function respuesta(){
nombrej=document.getElementById("nombre");
document.write(nombrej);
}
問題是,當我單擊按鈕時,消息為“空”,我在論壇中看到了類似問題的解決方案,但是由於有按鈕,所以我不知道該怎么辦。 救命!
那里有兩個問題:
您尚未聲明nombrej
。 (那不應該是nombre
嗎?)這意味着您的代碼正在成為“隱式全球性恐怖”的犧牲品 (這是我博客上的帖子) 。 聲明變量。
您已將nombrej
設置為HTMLInputElement
。 您可能想要它的值,該值位於它的value
屬性上。
調用document.write
一旦頁面已經完成將隱式調用document.open
,這抹了頁面,並與你寫的東西來替換它。
因此, respuesta
可能看起來像這樣:
function respuesta(){
var nombrej=document.getElementById("nombre").value;
// ^^^--- #1 ^^^^^^--- #2
console.log(nombrej);
// ^^^^^^^^^^^--- #3
}
旁注:我看到您已經將您的script
標簽放在head
部分。 您會發現很多人這樣做並告訴您這樣做,但這是一種反模式。 除非您有特定原因要執行其他操作,否則請將script
標記放在body
的最后,即</body>
標記之前。 有關YUI指南的更多信息。
JavaScript getElementById返回DOM元素。 要獲取該文本輸入的值,您需要獲取其值。
代替:nombrej = document.getElementById(“ nombre”);
使用:nombrej = document.getElementById(“ nombre”)。value;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.