我有这个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>
在另一个文件中:
function respuesta(){
nombrej=document.getElementById("nombre");
document.write(nombrej);
}
问题是,当我点击按钮的消息是"null"我在论坛上看到了类似问题的解决方案,但我不知道该怎么做,因为有一个按钮。的帮助!
这里有几个问题:
-
您没有申报
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>
标记之前。
JavaScript getElementById返回DOM元素。要获取文本输入的值,您需要获取它的值。
代替:nombrej = . getelementbyid("数量");
使用:nombrej = . getelementbyid("数量")value;
示例:JavaScript:如何获取文本输入字段的值?