如何使用Javascript检查输入字符串是否为有效数字

问题描述 投票:0回答:1

我尝试检查字段中的输入是否是有效数字,如果不是,则会显示警告消息。这是我试图实现的目标:

    jQuery(document).ready(function($){
      addRequiredField($);
    });
    function addRequiredField($) {
      var elements = document.getElementsByTagName("INPUT");
      for (var i = 0; i < elements.length; i++) {
        elements[i].oninvalid = function(e) {
            e.target.setCustomValidity("");
            if (!e.target.validity.valid) { // If Zero is entered there is a warning message - WORKING
                e.target.setCustomValidity("Please enter a price");
            }
            else if(isNaN(console.log(e.target.value))) {   // If invalid number is entered such as @380, 433-99, 33.50, etc., there is a warning message - NOT WORKING
              e.target.setCustomValidity("It is invalid number. Please enter latin numbers only like 280, 364, etc.");
            }
            else {      // If a valid number entered, no warning message - WORKING
              e.target.setCustomValidity("");
            }
        };
    }

我非常感谢任何建议。

string input numbers
1个回答
0
投票

jQuery(document).ready(function($){
  addRequiredField($);
});

function addRequiredField($) {
  var elements = document.getElementsByTagName("INPUT");
  for (var i = 0; i < elements.length; i++) {
    elements[i].oninvalid = function(e) {
      e.target.setCustomValidity("");
      if (!e.target.validity.valid) {
        e.target.setCustomValidity("Please enter a price");
      } else if (isNaN(parseFloat(e.target.value))) {
        e.target.setCustomValidity("It is an invalid number. Please enter valid numbers like 280, 364, etc.");
      } else {
        e.target.setCustomValidity("");
      }
    };
  }
}

您检查输入的值是否为有效数字的代码中似乎存在错误。 isNaN 函数检查一个值是否为 NaN(非数字),但它不会将任何内容记录到控制台

© www.soinside.com 2019 - 2024. All rights reserved.