Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 简单JS计算器-为什么不';这句话行得通吗?_Javascript - Fatal编程技术网

Javascript 简单JS计算器-为什么不';这句话行得通吗?

Javascript 简单JS计算器-为什么不';这句话行得通吗?,javascript,Javascript,我决定将此作为一个单独的问题发布,因为主题与我的主题略有不同。我正试图建立一个简单的计算器,将人的年数转换成狗的年数。用户被要求在表单中输入他们的年龄。然后他们点击一个按钮,他们的年龄(以狗年为单位)显示在表格下方 这一切都很好,但我现在尝试添加一个if语句,以防止表单以空白字符串或数字0提交。目前,如果有人输入一个空白字符串或零,然后点击按钮,他们会被告知他们在狗年是0。相反,我希望出现一条消息(表单下的同一位置),指示用户输入他们的年龄 以下是我目前掌握的代码: HTML: 非常感谢您的帮助

我决定将此作为一个单独的问题发布,因为主题与我的主题略有不同。我正试图建立一个简单的计算器,将人的年数转换成狗的年数。用户被要求在表单中输入他们的年龄。然后他们点击一个按钮,他们的年龄(以狗年为单位)显示在表格下方

这一切都很好,但我现在尝试添加一个if语句,以防止表单以空白字符串或数字0提交。目前,如果有人输入一个空白字符串或零,然后点击按钮,他们会被告知他们在狗年是0。相反,我希望出现一条消息(表单下的同一位置),指示用户输入他们的年龄

以下是我目前掌握的代码:

HTML:


非常感谢您的帮助。

在使用or运算符时,您仍然需要在两侧添加完整表达式,还需要将数字0放在引号中,因为它被视为字符串,如下所示:


如果要匹配某个范围(例如,1-999岁),可以执行以下操作:

函数calculateAge(){
var humanYears=document.getElementById(“humanYears”).value.trim();
如果(!humanYears.match(/^[1-9][0-9]?[0-9]?$/)| | humanYears==“”){
document.getElementById(“answer”).innerHTML=“请输入您的年龄(以人的年龄为单位)。”;
回来
}
var dogYears=humanYears*7;
document.getElementById(“answer”).innerHTML=“这意味着你在狗年里是“+dogYears+”!”;
}
document.getElementById(“calculate”).onclick=function(){calculateAge();}


你现在的年龄是多少

算计


提议的解决方案可能仍有一些缺点。例如,我可以输入一个字母,我可以输入多个空格

var humanYears = document.getElementById("humanYears").value.trim();
    if (!humanYears || isNaN(humanYears)) {
      document.getElementById("answer").innerHTML = "Please enter your age in human years.";
      return;
    }
你差点就成功了

当您执行
document.getElementById(“humanYears”).value时,它返回一个字符串,而不是数字

现在,当您执行
if(humanYears===0 | | |“”)
时,将字符串与数字进行比较,结果将返回false。只要把你的三重相等变成两重相等就行了<代码>==
->
=


希望这有帮助

语法错误,必须是
if(humanYears===0 | | humanYears===”){
负数和更多…感谢JordanHendrix的编辑。没有意识到是这样做的,谢谢!很高兴它成功了!有人否决了这个?
function calculateAge() {
  var humanYears = document.getElementById("humanYears").value;
    if (humanYears === 0 || "") {
      document.getElementById("answer").innerHTML = "Please enter your age in human years.";
      return;
    }

  var dogYears=humanYears * 7;

  document.getElementById("answer").innerHTML = "That means you are " + dogYears + " in dog years!";
}

document.getElementById("calculate").onclick = function() { calculateAge(); };
if (humanYears === "0" || humanYears === "") {
  document.getElementById("answer").innerHTML = "Please enter your age in human years.";
  return;
}
var humanYears = document.getElementById("humanYears").value.trim();
    if (!humanYears || isNaN(humanYears)) {
      document.getElementById("answer").innerHTML = "Please enter your age in human years.";
      return;
    }