如何根据用户是否已经回答了我在提示中输入的内容,如何进行提示?

时间:2013-08-17 02:06:20

标签: javascript html

如果用户有,我想知道如何警告“糟糕,看起来你没有输入任何东西” 输入“输入您的姓名”。我有一个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>

4 个答案:

答案 0 :(得分:1)

此方法定义一个函数getName(),它接受与prompt()相同的参数。如果未指定默认值,则使用传递给它的问题。然后它使用这些值询问用户他们的名字。如果用户返回的响应不令人满意,即falsy(名称==='',名称=== 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

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

答案 1 :(得分:0)

如果查看JavaScript's prompt() method的定义,您可以看到第二个参数是该方法在用户未输入任何内容时应返回的默认文本。

请改为尝试:

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

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

希望这有帮助!现场演示here

答案 2 :(得分: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>

Demo

答案 3 :(得分:0)

else if(name !== false)始终为true

因为name永远不会保存 true; === doesn't do type conversion

所以有点清理:

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