4

如果用户输入了“输入您的姓名”,我想知道如何提醒“糟糕,您似乎没有输入任何内容”。我有一个 if 和 elseif 但我不知道 else 是否适用。这是我的代码

    <!DOCTYPE html>
    <html>
    <head>
    <title>Home</title>
    <link rel="stylesheet" type="text/css" href="style.css"/>
    </head>
    <body style="background-color: silver">
    <script>
        var name=prompt("Enter your name", "Enter your name")
        if (name !== '') {
            alert("Welcome" + " " + name)
        } else if(name !== false) {
            prompt("Oops, looks like you didn't enter anything");
        }
    </script>
    </body>
    <html>
4

4 回答 4

1

此方法定义了一个函数 getName(),它采用与 prompt() 相同的参数。如果未指定默认值,则使用传递给它的问题。然后它使用这些值询问用户他们的名字。如果用户返回一个不满意的响应,即是的(name === '',name === null 等)或等同于我们给他们的提示,我们会​​弹出一个带有错误消息但相同的新提示默认消息。

function getName(ques, def) {
  def = def || ques; // Make default param optional
  var name = prompt(ques, def);

  if (name && name !== '' && name != def) {
    return name;
  } else if(name !== false) {
    return getName("Oops, looks like you didn't enter anything", def);
  }
};

var name = getName("Enter your name");
alert('Your name is: ' + name);

演示:http ://cdpn.io/rlJGj

从用户体验的角度来看,请注意这一点。由于许多原因,它非常可怕。如果用户点击取消,这将提示他们,直到他们输入可接受的值并按确定。事实上,它并不能带来最好的用户体验,这是一种非常糟糕的体验。

于 2013-08-17T02:33:38.747 回答
0

如果您查看JavaScript 的 prompt() 方法的定义,您会看到第二个参数是该方法应返回的默认文本,以防用户没有输入任何内容。

试试这个:

var name = prompt("Enter your name");

if (name === "") {
    prompt("Oops, looks like you didn't enter anything");
} else if(name != null) {
    alert("Welcome" + " " + name);
}

希望这可以帮助!现场演示在这里

于 2013-08-17T02:11:10.763 回答
0
<script>
var name=prompt("Enter your name", "Enter your name")
if (name!=='' && name!=='Enter your name') {
alert("Welcome" + " " + name)
} else if(name!==false) {
prompt("Oops, looks like you didnt enter anything");
}
</script>

演示

于 2013-08-17T02:12:03.593 回答
0

else if(name !== false)永远都是true

因为 name 永远不会保存 true=== 不进行类型转换

所以稍微清理一下:

var pHolder = "Enter your name"
var name=prompt("Enter your name", pHolder )
if(!name ||name == pHolder){
   alert("Oops, looks like you didnt enter anything");
}
else{
    alert("Welcome" + " " + name)
}
于 2013-08-17T02:26:43.667 回答