警报内的Javascript“if”语句

时间:2014-03-10 17:12:36

标签: javascript if-statement alert

我是JavaScript的新手,我想知道如何在警报中嵌入“if”语句。具体来说,我正在处理一个表单,我希望在用户单击“提交”后显示的警报显示不同的消息,具体取决于用户输入的哪些元素有问题(如果有的话)。我知道我可以反过来做(即使用一系列if语句来确定要显示的警报),但我希望能够在警报代码本身中使用“if / else”。谢谢!

4 个答案:

答案 0 :(得分:3)

您不想使用提醒。它专门用于通知用户发生了某些事情,并且您无法从中获得准确的反馈。您应该使用的是提示或确认。使用确认代码将允许您确定用户是单击确定还是取消。虽然这是非常有限的,但它仍然以类似于您正在寻找的方式运行。例如

var r=confirm("Press a button");
if (r==true)
  {
  x="You pressed OK!";
  }
else
  {
  x="You pressed Cancel!";
  }

使用提示代码将允许用户输入一个值,然后您可以将该值附加到变量并使用逻辑,例如

var person=prompt("Please enter your name","Harry Potter");

if (person!=null)
  {
  x="Hello " + person + "! How are you today?";
  document.getElementById("demo").innerHTML=x;
  }

提示功能的标准语法是

prompt("This text will appear in the alert box","This is the default value");

我的来源以及其他信息可在W3schools

上找到

编辑 - 我忘了提到,如果他们使用的是你在javascript中创建的表单,那么运行一个简单的if / else语句可以更容易,该语句检查他们输入的所有值是否都是在允许它们继续之前,不为null并具有正确的数据类型。我猜想,如果你使用if来确认有效性,而不是缺乏有效性,那么让其他人保持警惕。

答案 1 :(得分:0)

您可以编写类似

的内容
alert(condition ? "Text if true": "text if false");

但它不是最易读的代码。

的注释选项
alert(getAlertMessage(anyNeededValue));

if (cond) {
    alert("true");
} else {
    alert("false");
}

听起来更好。但如果你真的热衷于“如果在警报中”,那么你有一个内联函数:

alert((function(){ 
    if (cond) { return "Text when true";}
    else {return "Text when false");})());

答案 2 :(得分:0)

alert将字符串作为输入。哪个可以来自变量。

var message;

if ("condition1") {
  message = "message1";
} else if ("condition2") {
  message = "message2";
} else if ("condition3") {
  message = "message3";
}

alert(message);

不幸的是if是一个声明,不能直接用作参数。但是你可以使用三元运算符,这是一个表达式。

alert(if ("this") { "won't" } else { "work"} );
alert('but' ? 'this' : 'will');

这也是可能的,尽管我从未见过它:

alert(
  ('condition1') ? 
   'result1' : 
  ('condition2') ? 
   'result2' : 
   'result3'
);

答案 3 :(得分:0)

使用变量:

msg = "";
if (…)
    msg = "error 1";
else if (…)
    msg = "error 2";
[…]

if (msg.length)
    alert(msg);
  

我希望能够在警告代码调用中使用“if / else”

您可以使用conditional operator,这基本上是一个else - 如果在表达式中 - 这意味着整个表达式可以作为参数传递:

 alert( /* condition */ ? "error 1" : "everything is fine" );