Javascript 数字与负值的比较不起作用

标签 javascript

我尝试将负值与“0”进行比较,但这似乎不起作用。

var number = Number.parseInt($(this).val());
var min = Number.parseInt($(this).attr('min'));
var max = Number.parseInt($(this).attr('max'));

这是我的情况:

if (min && $(this).prop('required')) {
    if (number < min) {
        alert('ok');
            fail = true;
    }
}

My min value is 0 and my number is -1.

它永远不会进入该条件。为什么?

最佳答案

0falsy值(value)。如果 min0 ,则永远不会进入 if 条件。

以下所有条件都会被发送到 else block

if (false)
if (null)
if (undefined)
if (0)
if (NaN)
if ('')
if ("")
if (``)

由于 parseInt 的返回值要么是数字,要么是 NaN,因此您可以使用 isNaN相反:

if(!isNaN(min) && $(this).prop('required')) {
  // your code
}

关于Javascript 数字与负值的比较不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54865870/

相关文章:

javascript - 在 HTML 中的超链接事件上显示文本文件

php - 通过javascript提交两个表单而无需点击

javascript - 删除预定义字符串后的字符串

javascript - 如何使用 jquery 调整 html 表的行和列的大小?

php - 使用 fancybox 打开的表单中的 textarea 元素不会清除值

javascript - 如何在 nativescript 中使用 ripple-lib

javascript - 访问EJS内部的变量

javascript - jQuery 自动完成组合框 - 清除焦点上的选择

javascript - 如果我为同一事件设置 "listenToOnce"多次触发会发生什么

javascript - HTML/JS/CSS3 + ASPX ... 和 Sharepoint Designer 2013