document.getElementById用于外部html中的元素

时间:2016-09-29 17:59:26

标签: javascript html onclick getelementbyid

我有这个HTML:

instanceof

这个Javascript在另一个文件中:

<!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>

问题是,当我点击按钮时,消息为“null” 我在论坛中看到了类似问题的解决方案,但由于有一个按钮,我不知道该怎么做。救命啊!

2 个答案:

答案 0 :(得分:1)

那里有几个问题:

  1. 您尚未宣布nombrej(并且不应该是nombre?)这意味着您的代码会成为The Horror of Implict Globals 的牺牲品(我的博客上发布的帖子) 。声明你的变量。

  2. 您已将nombrej设置为HTMLInputElement。您可能想要它的值,即value属性。

  3. 页面完成后调用document.write会隐式调用document.open,这会清除页面并将其替换为您编写的内容。

  4. 所以respuesta可能看起来像这样:

    function respuesta(){
    
        var nombrej=document.getElementById("nombre").value;
    //  ^^^--- #1                                    ^^^^^^--- #2
        console.log(nombrej);
    //  ^^^^^^^^^^^--- #3
    } 
    

    附注:我们看到您已将script标记放在head部分中。你会发现很多人这样做并告诉你这样做,但这是一种反模式。除非您有特定的理由要做其他事情,否则请将script标记放在body的最后,就在结束</body>标记之前。更多信息YUI's guidelines

答案 1 :(得分:0)

JavaScript getElementById返回DOM元素。要获取该文本输入的值,您需要获取它的值。

而不是: nombrej =的document.getElementById(&#34; NOMBRE&#34);

使用: nombrej =的document.getElementById(&#34; NOMBRE&#34)。值;

示例:JavaScript: how to get value of text input field?