如何在用户输入任何内容时发出警报?

时间:2017-04-25 21:49:52

标签: javascript html

我正在制作一个JavaScript项目,当用户在提示符中输入任何内容时我想提醒

function verifyage() {
var age = prompt("enter your age:", "");
var status = (age >= 18) ? "adult" : "minor";
if(status == "minor") {
alert("you are too young");
} else if (status == "adult") {
alert("you're in");
} else if (status == "null") {
alert("you need to enter your age");
}
else {
void(0);
}}
<button onclick="verifyage();" type="button">watch movie</button>

它应该做什么:

  • 定义一个定义用户年龄的变量年龄
  • 定义一个变量状态,其中包含两个值成人和次要
  • 提示用户年龄
  • 当用户输入小于18的数字
  • 时,提醒您年龄太小的消息
  • 当用户输入的数字大于18
  • 时,提醒您所处的消息
  • 提醒用户输入任何内容时必须输入年龄的消息

但是,当我测试并输入任何内容时,它说你太年轻了 - 为什么?

我尝试了how to show alert when user enter other then number value in textfield和其他但没有。 编辑:当我按下取消时,它说你太年轻了......帮忙?

5 个答案:

答案 0 :(得分:2)

在我看来,您希望继续提示用户在该字段中输入内容。为了实现这一点,我将有一个while循环,检查以确保年龄不是空白。它也看起来没有必要设置状态,然后只需检查年龄就可以检查值。

function verifyage() {
        var age = prompt("enter your age:", "");
        //var status = (age >= 18) ? "adult" : "minor";
        while(age === "" || isNaN(age)){
            age = prompt("enter your age:", "");
        }   
        if(age <= 18) {
            alert("you are too young");
        } else if (age > 18) {
            alert("you're in");
        } 
        else {
            void(0);
        }
    }

答案 1 :(得分:0)

function verifyage() {
var age = prompt("enter your age:", "");
if(age=='' || age<="0" || isNaN(age)){alert ("you have to enter your age");
}
var status = (age >= 18) ? "adult" : "minor";
if(status == "minor") {
alert("you are too young");
} else if (status == "adult") {
alert("you're in");
} else if (status == "null") {
alert("you need to enter your age");
}
else {
void(0);
}}

首先,如果你没有选择年龄,它会将它分配给0,这是第一个,如果将获得18,那么为了避免添加if语句来验证用户是否没有写任何东西或者写0错误,如上面的代码

答案 2 :(得分:0)

&#13;
&#13;
function verifyage() {
  var age = prompt("enter your age:", "");
  if(isNaN(parseFloat(age))) {          // check: if user entered a number/string/blank
    alert("You entered nothing");
  }
  else {
    var status = (age >= 18) ? "adult" : "minor";
      if(status == "minor") {
        alert("you are too young");
      } else if (status == "adult") {
        alert("you're in");
      } 
  }
}
verifyage();
&#13;
&#13;
&#13;

答案 3 :(得分:0)

我不是javascript专家,但看着你的代码,我认为&#34; null&#34;不会做你想要的。现在它明确地寻找键入的文本&#34; null&#34;。例如,在c ++中,您可以使用

else if (status == "")

或(甚至可能更好)只使用其他(因此除了成人/未成年人之外的所有内容都可能出错)

此外,我不会与变量&#34; status&#34;进行比较,而是使用&#34; age&#34;。这应该是你做的第一次比较。当输入的年龄==&#34;&#34; (&lt; - nothing)然后你可以发出警报,提示用户再次输入他们的年龄。

祝你好运!

答案 4 :(得分:0)

请参阅以下更正,您输入时遇到了麻烦,年龄变量的值为0。

function verifyage() {
var age = prompt("enter your age:", "");
var status = (age >= 18) ? "adult" : "minor";
if (age == 0)
 status = "null";
if(status == "minor") {
alert("you are too young");
} else if (status == "adult") {
alert("you're in");
} else if (status == "null") {
alert("you need to enter your age");
}
else {
void(0);
}}
<button onclick="verifyage();" type="button">watch movie</button>