如果大多数人在js中运作不佳

时间:2016-05-01 14:27:11

标签: jquery

我有2个数字输入字段,当用户停止输入时,下面会运行。我正在做的是检查输入数字是否大于输入b以及是否显示错误。

问题是计算效果不佳。例如,如果a为200且b为100,则无效,但如果a为200且b为5

,则无效

不确定为什么......所以任何帮助都会非常感激。

$("#input_6_23, #input_6_24").on({  
  blur: function() {
        var a = document.getElementById("input_6_23").value;
        var b = document.getElementById("input_6_24").value;

        if(a > b) {     
            alert(a is bigger than b);          
        }
  }
});

3 个答案:

答案 0 :(得分:5)

它的工作原理如何?

 jQuery(document).ready(function($){

    $("#input_6_23, #input_6_24").on('blur',function() {

      check();
    });
    function check(){
       var a = Number($("#input_6_23").val());
       var b = Number($("#input_6_24").val());

       if(a > b) {     
        alert(a+' is bigger than '+b);          
       } else {
        alert("error");
    }  
}});

答案 1 :(得分:1)

转变为:

var a = parseInt(document.getElementById("input_6_23").value, 10);
var b = parseInt(document.getElementById("input_6_24").value, 10);

答案 2 :(得分:0)

您正在进行字符串比较,而不是数字比较。您可以在比较之前转换为数字(请注意在检索+时添加.value符号):

$("#input_6_23, #input_6_24").on({  
  blur: function() {
        var a = +document.getElementById("input_6_23").value;
        var b = +document.getElementById("input_6_24").value;

        if(a > b) {     
            alert("a is bigger than b");          
        }
  }
});

P.S。您还必须将a is bigger than b变为带有引号的有效字符串。

将字符串转换为数字有多种方法:

var num = parseInt(str, 10);
var num = +str;
var num = Number(str);

并且,希望这只是用于测试,因为在alert()事件上放置blur在实际的实际使用场景中非常讨厌。