0

我刚刚测试了一些代码,但我无法让它工作:

<HTML>
<head>

<title> Page 1 </title>

<script>
function myFunction()
{
var x=document.getElementById("myEmail")
document.write(x)
}
</script>

</head>

<body>

<form>
<p> Input your email </p>
<input name="myEmail" type="text">
</form>

<button type="button" onclick="myFunction()">Submit Email</button>

</body>

</HTML>

我所要做的就是让用户在文本中输入一些内容,由解析器读取,将其放入变量中,然后在屏幕上打印变量。如果我知道这一点,它将对我正在进行的其他项目有很大帮助。任何人都可以帮忙吗?注意:我不想使用 HTML5,因为它删除了一些我喜欢的标签,所以我们可以使用 HTML 4.01 或其他什么吗?

4

4 回答 4

3

第 1 步是使用 HTML 5,缩进代码并使用分号。

<!DOCTYPE html>

<html>
    <head>
        <title> Page 1 </title>

        <script>
        function myFunction() {
            var x = document.getElementById("myEmail");
            document.write(x);
        }
        </script>
    </head>
    <body>
        <form>
            <p> Input your email </p>
            <input name="myEmail" type="text">
        </form>

        <button type="button" onclick="myFunction()">Submit Email</button>
    </body>
</html>

第 2 步是查看正在编写的内容,看到它是null,直觉什么时候document.getElementById会返回,并意识到文档null中没有带有idof的元素。myEmail它只有一个name. 当你在它的时候放下表格。

<body>
    <p>Input your email </p>
    <input id="myEmail" type="text">
    <button type="button" onclick="myFunction()">Submit Email</button>
</body>

下一步是再次尝试并意识到这x是一个元素,而不是字符串,并且您想要获取它的值。

function myFunction() {
    var x = document.getElementById("myEmail");
    document.write(x.value);
}

“良好的未来实践”步骤没有特别的顺序:

  • 将您的脚本放在底部并停止使用内联事件侦听器
  • 将您的脚本放在外部文件中
  • 用一个<label>

如果您不打算做一些比写回电子邮件更有用的事情,也可以考虑使用document.body.appendChild(document.createTextNode(…)),它不会删除文档的其余部分。DOM 真的很棒。

于 2013-11-05T03:13:25.000 回答
0

在输入中添加一个 id

<input name="myEmail" type="text" id="myEmail">

然后写入值

document.write(x.value)
于 2013-11-05T03:12:52.967 回答
0

document.getElementById 返回 DOM 元素。打印 DOM 元素没有意义,其输出可能因浏览器而异。

你想要的是打印输入字段的输入值,所以检查value属性:

function myFunction()
{
var x=document.getElementById("myEmail").value
document.write(x)
}

其次,您的 HTML 代码在元素上没有 ID 属性,因此 getElementById 查找将失败。添加标识:

<input name="myEmail" type="text" id="myEmail">

关于您关于 HTML 4 与 HTML 5 的注释。

注意:我不想使用 HTML5,因为它删除了一些我喜欢的标签,所以我们可以使用 HTML 4.01 或其他什么吗?

那个评论很有趣。在不知道您具体指的是哪些标签的情况下,我无法说出它们被删除的原因,但我想可能有一个等价物。HTML 5 不会删除我知道的任何 HTML 功能。

这就像说您不会驾驶带自动变速器的汽车,因为它没有离合器。

于 2013-11-05T03:13:09.827 回答
0

您所要做的就是添加一个 id 属性,该属性的值与您的 input type="text" 的 name 属性的值相同,并修改您的脚本以存储值而不是元素本身。

<html>
<head>
<title> Page 1 </title>
<script>
    function myFunction()
    {
    var x=document.getElementById("myEmail").value;
    document.write(x);
    }
</script>
</head>
<body>
    <form>
    <p> Input your email </p>
    <input name="myEmail" id="myEmail" type="text">
    </form>
<button type="button" onclick="myFunction()">Submit Email</button>
</body>
</html>
于 2013-11-05T03:47:51.393 回答