使用javascript的非常基本的程序中出现错误
如果使用javascript的非常基本的程序中出现错误,javascript,Javascript,如果person不是null,则输出第一个条件,否则显示警报框。但是,如果输入了null,它不会执行第二个条件,而是继续执行第一个条件 <!DOCTYPE html> <html> <body> <p>Click the button to demonstrate the prompt box.</p> <button onclick="myFunction()">Try it</button> <p
person
不是null
,则输出第一个条件,否则显示警报框。但是,如果输入了null
,它不会执行第二个条件,而是继续执行第一个条件
<!DOCTYPE html>
<html>
<body>
<p>Click the button to demonstrate the prompt box.</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
<script>
function myFunction() {
var person = prompt("Please enter your name");
if (person != null) {
document.getElementById("demo").innerHTML =
"Hello " + person + "! How are you today?";
}
else if (person == null ){
alert("How dare you ?>");
}
}
</script>
</body>
</html>
单击按钮以演示提示框
试试看
函数myFunction(){
var person=提示(“请输入您的姓名”);
if(person!=null){
document.getElementById(“demo”).innerHTML=
“你好”+人+“!你今天好吗?”;
}
else if(person==null){
警惕(“你怎么敢?>”;
}
}
问题很可能是,当您认为输入空值时,实际上并没有输入空值
null
是特殊值:它是一个特殊值,表示没有值。不要与“null”
(包含单词“null”的字符串)或“”(空字符串)混淆
prompt()
仅在取消时返回null
。当您“输入null”时,可能会以“null”或“”结尾,这取决于您是否在框中键入任何内容
见:
因此,您的固定代码是:
<!DOCTYPE html>
<html>
<body>
<p>Click the button to demonstrate the prompt box.</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
<script>
function myFunction() {
var person = prompt("Please enter your name");
if (person != "") {
document.getElementById("demo").innerHTML =
"Hello " + person + "! How are you today?";
} else {
alert("How dare you ?>");
}
}
</script>
</body>
</html>
单击按钮以演示提示框
试试看
函数myFunction(){
var person=提示(“请输入您的姓名”);
如果(人!=“”){
document.getElementById(“demo”).innerHTML=
“你好”+人+“!你今天好吗?”;
}否则{
警惕(“你怎么敢?>”;
}
}
myFunction()未定义按钮何时分配事件处理程序,因此请将脚本放入head标记中。为了便于检查,字符串值需要放“”而不是null
我修改了你的代码试试这个它会工作的…它对我来说很好
<!DOCTYPE html>
<html>
<head>
<script>
function myFunction() {
var person = prompt("Please enter your name");
if (person != "") {
document.getElementById("demo").innerHTML =
"Hello " + person + "! How are you today?";
}
else {
alert("How dare you ?>");
}
}
</script>
</head>
<body>
<p>Click the button to demonstrate the prompt box.</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
</body>
</html>
函数myFunction(){
var person=提示(“请输入您的姓名”);
如果(人!=“”){
document.getElementById(“demo”).innerHTML=
“你好”+人+“!你今天好吗?”;
}
否则{
警惕(“你怎么敢?>”;
}
}
单击按钮以演示提示框
试试看
将您的脚本标签
包装在头标签内
。因为为按钮分配事件处理程序时,不会定义myFunction()
。或者使用addEventListener
绑定事件。这里真的需要吗?我正在使用w3学校试用它只要把它改成我的脚本run@RajaprabhuAravindasamy那是不对的。@torazaburo是吗?似乎我有一个误解。@RajaprabhuAravindasamymyFunction()
不需要在分配给onclick
处理程序时定义。它需要在调用处理程序时定义,即单击发生时。在任何情况下,您担心的问题都与OP报告的行为不匹配。如果问题是您提到的,则会导致未定义的函数错误。对,但正如我所解释的,“不输入任何内容”实际上是为您获取空字符串,而不是空字符串。要获得您显然想要的行为,请更改!=空
至!=“
请注意,您不需要在“else-if”块中放置相反的条件,您可以(如果您只有一个分支)单独使用else(这当然意味着与if
中给出的条件相反),但是提示符
取消时会返回null。我修改了答案,请尝试将它与null进行比较,但也与null字符串值进行比较,这样您就需要比较person==“”和person=“myfunction
分配给onClick
时不需要定义它。它只需要定义点击实际发生的时间,实际上就是这样。如果用户取消警报,这将如何表现?另外,当您仅仅分配元素的文本内容时,为什么要使用innerHTML
?另外,请正确缩进代码。