【问题标题】:How can I check if the input is empty in JavaScript? [duplicate]如何检查 JavaScript 中的输入是否为空? [复制]
【发布时间】:2015-08-17 22:33:52
【问题描述】:

我正在尝试制作一个阶乘计算器。如何检查输入是否为空?我试过'空'。但它不起作用或我无法正确使用它。
对不起这个愚蠢的问题。我是 JavaScript

的新手

function myFriday() {
  var input = document.getElementById("input1").value;

  var ever = function () {
    if( !(isNaN(input))) {
      var result = 1;
      for(var i = 1; i <= input; i++ ) {
        result = result * i
      }
      return result;
    }
    else if (input == null){
      return "Please input a number"
    }
    else{
      return "Please input a number"
    }
  }

  document.getElementById("input2").value = ever();
}
<p>Input: <input type="text" id = "input1" /></p>
<p>Input: <input type="text" id = "input2" /></p> 
<button onclick = "myFriday()">Calculate</button>
<p >RESULT: <span id = "result" style = "color:red"></span> </p>

【问题讨论】:

  • var str = document.getElementById("input1").value; if !(str.match(/\S/){ alert('blank'); }

标签: javascript


【解决方案1】:

function myFriday() {
  var input = document.getElementById("input1").value;

  var ever = function() {
    if (input.trim() == '') {
      return "Please input a number"
    } else if (!(isNaN(input))) {
      var result = 1;
      for (var i = 1; i <= input; i++) {
        result = result * i
      }
      return result;
    }

  }

  document.getElementById("input2").value = ever();
}
<p>Input:
  <input type="text" id="input1" />
</p>
<p>Input:
  <input type="text" id="input2" />
</p>
<button onclick="myFriday()">Calculate</button>
<p>RESULT: <span id="result" style="color:red"></span> 
</p>

【讨论】:

  • 问题重复,直接关闭。
  • 在我个人看来,可能有人投了反对票,因为这是一个以前可能被问过的微不足道的问题,并不是每个人都欢迎回答微不足道且可能重复的问题。
  • @BenFortune,老实说,我不知道这是重复的,我的回答直接来自我的脑海。不正确的答案应该投反对票,而不是重复问题的答案
  • @AmmarCSE 否决票代表人们对您的帖子的看法。正如工具提示所说,投反对票意味着帖子“没有用”。你看,如果你回答了一个已经有答案的重复问题,那么发布类似的答案可能不会被认为是有用的。
  • @DJDavid98 我前段时间在 meta 上提出了类似的论点:meta.stackoverflow.com/questions/252009/…。看来这可能是帖子回复者所指的“灰色地带”。当发帖者没有在提问之前先搜索他们的问题时,惩罚回答者是否正确?也许是时候重新审视这个问题了。只是一些思考的食物......
【解决方案2】:

这就是你要找的吗?

function myFriday() {
  var input = document.getElementById("input1").value;

  var ever = function () {
    if(input.match(/\D/) == null){ // changes made here
      var result = 1;
      for(var i = 1; i <= input; i++ ) {
        result = result * i
      }
      return result;
    }
    else{ // one else is enough
      return "Please input a number"
    }
  }

  document.getElementById("input2").value = ever();
}
<p>Input: <input type="text" id = "input1" /></p>
<p>Input: <input type="text" id = "input2" /></p> 
<button onclick = "myFriday()">Calculate</button>
<p >RESULT: <span id = "result" style = "color:red"></span> </p>

【讨论】:

    【解决方案3】:

    当你使用 .value 时,你会得到一个字符串值作为回报。 这意味着当您在输入中不输入任何内容时,它将返回“”

    所以你应该改变这段代码 input == null

    进入这个 input === ""

    请注意,我还写了 === 而不是 == 当对象属于同一类型时,在 javascript 中使用 === 比 == 更快。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-04
      • 2018-04-18
      • 2011-01-23
      • 2018-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多