javascript 有条件返回意外结果

标签 javascript jquery html conditional-statements

我正在对输入字段的 keyUp 事件进行简单的数字比较。由于某种原因,我没有得到预期的结果,而且我不明白为什么。 应该发生的是,如果用户输入的数字大于 html 属性中存储的数字,则背景应变为红色,否则保持白色。只需输入“9”即可将背景变成红色。 ??

var admin = $('input[name="diskStorage"]').attr('data-adminstorage'); // 2097152000

$('#new-user input[name="diskStorage"]').keyup(function(){

    if(admin < $(this).val())
        $(this).css('background','red');
    else
        $(this).css('background','white');
});

当我调试这些值时,if(2097152000 < 549)返回 true。这是 html,以防有什么不同:

<form action="administrate.php" method="post" id="new-user">
<table><tbody><tr>
...
  </tr><tr>
    <td>Disk Storage Limit:</td>
    <td>
   <input type="text" data-adminStorage="2097152000" name="diskStorage" value="" /> megaBytes<br />
    <span id="info"></span></td>
...
  </tr></tbody></table>

这是直播:http://jsfiddle.net/JMC_Creative/dqAJj/2/

最佳答案

.attr.val() 返回 String 对象 - 使用一元 + 运算符将其转换为数值。

var admin = $('input[name="diskStorage"]').attr('data-adminstorage');
admin = +admin;

if(admin < +$(this).val()) {
   //...
}

关于javascript 有条件返回意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4787746/

相关文章:

javascript - Google map 自定义样式不起作用

javascript - Highcharts 折线图向下钻取无法正常工作

javascript - Jasmine 测试模拟数据还是真实系统和数据源?

html - 触摸屏设备支持 onmousedown 和 onmouseup 吗?

jquery - ColorBox 未加载 - 所有 JS 都正确通过

javascript - 无法计算类(class)高度

php - 使用 Javascript 和 PHP 将数据从 NCBI 数据库传输到另一个站点

Javascript:Date.setHours(12, 0, 0, 0) 将日期调回一天?

javascript - 点击用js删除div

javascript - Jquery文件上传进度条