Javascript 在文档中的提示框中写入值

Javascript 在文档中的提示框中写入值,javascript,Javascript,当访问者访问我的页面时,我希望他们得到一个框的提示,询问他们的名字,并在文本中使用这个名字。我创建了这样一个脚本: function askname() { var x=prompt("What is your name?",""); } 我把脚本放在头标签之间。然后,我写。该框提示成功。 现在,我想在文本中使用“x”。首先,我刚刚写了 <script type="text/javascript">document.write(x)</script> 但它根本不起作用

当访问者访问我的页面时,我希望他们得到一个框的提示,询问他们的名字,并在文本中使用这个名字。我创建了这样一个脚本:

function askname() {
var x=prompt("What is your name?","");
}
我把脚本放在头标签之间。然后,我写。该框提示成功。 现在,我想在文本中使用“x”。首先,我刚刚写了

<script type="text/javascript">document.write(x)</script>
但它根本不起作用!还有别的方法吗?不过,我计划不使用任何javascript库。所以我请求你的帮助。抱歉,如果这是一个愚蠢的问题,我是JS的新手。我也很抱歉我的英语不好…

var x是askname函数的本地变量。如果需要document.writecomptwo,您的名字是什么?

var x是askname函数的本地变量。您需要document.writecomptwo您的名字是什么?

使用document.write是一种不好的做法,此外,如果在加载文档后调用它,它将覆盖它。innerHTML在这里是合适的,因为这是一项相对简单的任务,如果您进入更复杂的领域,您应该使用DOM方法,创建元素并填充nodeValue属性

使用内联事件处理程序和内联JS也是一种不好的做法,你应该将它们分开,我会将它们放在一个外部脚本中,这样它就会被实际缓存,而不必考虑我的代码示例,因为它只是一个示例,但在真实页面上应该这样做

<body>
<div id="message"></div>
<script>
window.onload = function() {
    var name = prompt('What is your name?', '');
    if ( name ) {
        document.getElementById('message').innerHTML = name;
    }

}
</script>
</body>
使用document.write是不好的做法,此外,如果在加载文档后调用它,它将覆盖它。innerHTML在这里是合适的,因为这是一项相对简单的任务,如果您进入更复杂的领域,您应该使用DOM方法,创建元素并填充nodeValue属性

使用内联事件处理程序和内联JS也是一种不好的做法,你应该将它们分开,我会将它们放在一个外部脚本中,这样它就会被实际缓存,而不必考虑我的代码示例,因为它只是一个示例,但在真实页面上应该这样做

<body>
<div id="message"></div>
<script>
window.onload = function() {
    var name = prompt('What is your name?', '');
    if ( name ) {
        document.getElementById('message').innerHTML = name;
    }

}
</script>
</body>

您的脚本有两个问题。一个是x变量是函数的局部变量,因此当您退出函数时,字符串就消失了。另一个问题是document.write是在函数之前执行的,因此即使变量按预期工作,它也不会被赋值

不要使用脚本写出名称,而是使用标识符放置元素:

<span id="name"></span>

您的脚本有两个问题。一个是x变量是函数的局部变量,因此当您退出函数时,字符串就消失了。另一个问题是document.write是在函数之前执行的,因此即使变量按预期工作,它也不会被赋值

不要使用脚本写出名称,而是使用标识符放置元素:

<span id="name"></span>

除了meder和Guffa的问题,还有一个

即:提示在IE7+中不再起作用。根据微软的说法,出于安全原因,但它们几乎完全是伪造的。不管怎样,window.prompt实际上是死的。如果您想接受用户的输入,您必须创建自己的页面表单,并将单击处理程序附加到提交中,以获取name的值


有许多库提供了一种类似于提示符的方法,但它们永远不会成为替代品,因为在事件驱动的JavaScript中无法再现提示符的同步特性。

除了meder和Guffa的问题之外,还有一个问题

即:提示在IE7+中不再起作用。根据微软的说法,出于安全原因,但它们几乎完全是伪造的。不管怎样,window.prompt实际上是死的。如果您想接受用户的输入,您必须创建自己的页面表单,并将单击处理程序附加到提交中,以获取name的值

有许多库提供了一种类似于提示符的方法,但它们永远不能作为替代品,因为在事件驱动的JavaScript中无法再现提示符的同步特性。

我建议做一些更像DOM的事情,而不是提示符:

function askname() {
var x=prompt("What is your name?","");
}
您还可以在输入元素周围使用一个标记,当您单击按钮时,该标记将随document.getElementById'inputdiv'.style.display='none'一起消失

祝你好运

我建议做一些更像DOM的事情,而不是提示:

function askname() {
var x=prompt("What is your name?","");
}
您还可以在输入元素周围使用一个标记,当您单击按钮时,该标记将随document.getElementById'inputdiv'.style.display='none'一起消失


祝你好运

也打败我吧+1.虽然Jim可以把代码放在他的askname函数中,不是吗?我对JS也很陌生:-谢谢meder,已经试过了,效果非常好!再一次,谢谢!也打败我吧+1.虽然Jim可以把代码放在他的askname函数中,不是吗?我对JS也很陌生:-谢谢meder,已经试过了,效果非常好!再一次,谢谢@吉姆:你的英语很好:——。@吉姆:就是雷
余烬因为我看到你是stackoverflow的新手,所以你应该接受你认为最有帮助和正确的答案。这似乎是梅德尔对你的回答,所以去接受它吧!:-@吉姆:你的英语很好:-。吉姆:记住,既然我看到你是新来的,你就应该接受你认为最有用、最正确的答案。这似乎是梅德尔对你的回答,所以去接受它吧!:-。