如何根据用户是否回答了我'We’我在提示中被预先键入了

How to i make my prompt alert accordingly to if the user has answered what i've got pre typed in the prompt?

本文关键字:提示 We 用户 何根 是否      更新时间:2023-09-26

如果用户输入"输入您的姓名"。我有一个if和elseif,但我不知道其他是否适用。这是我的代码

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

此方法定义了一个函数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

从用户体验的角度来看,要小心。由于许多原因,这简直太可怕了。如果用户点击cancel,这将提示他们,直到他们输入一个可接受的值并按ok。这并不能带来最佳的用户体验,事实上,这是一个非常糟糕的体验。

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

演示

如果您查看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);
}

希望这能有所帮助!现场演示。

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)
}