Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将输入值与0轨迹进行比较_Javascript_Jquery - Fatal编程技术网

Javascript 将输入值与0轨迹进行比较

Javascript 将输入值与0轨迹进行比较,javascript,jquery,Javascript,Jquery,我发现,当jQuery获得一个trail为0(例如100)的值时,它会忽略它。所以如果我比较5>100,结果是真的。那么我该如何解决这个问题呢? 以下是HTML代码: <form id="target"> <input type="text" id="max" value="100"/> <input type="text" id="number" /> <input id="submit" type="submit" valu

我发现,当jQuery获得一个trail为0(例如100)的值时,它会忽略它。所以如果我比较5>100,结果是真的。那么我该如何解决这个问题呢? 以下是HTML代码:

<form id="target">
    <input type="text" id="max"  value="100"/>
    <input type="text" id="number" />
    <input id="submit" type="submit" value="submit" />
</form>
在这里您可以看到演示:

使用
parseFloat()
,否则这些值将被视为字符串

$('#target').submit( function() {
  var a = parseFloat($("#number").val());
  var b = parseFloat($("#max").val());
  if( a > b){
     alert("exceed limit"); 
  }

    return false;
});

请参见

您需要比较数值,而不是字符串值。
.val()
函数的输出是一个DOMString值,根据该值,该值表示:

因此,您的(5>100)测试实际上是
“5”>“100”
,这是正确的,因为字符串是按字典进行比较的

解决办法是改变

if( a > b){


前缀运算符将其参数强制为数字。

您可以将其乘以1,将其从字符串转换为数字,或者使用parseInt

var a = $("#number").val() * 1;


parseInt函数的第二个参数是基数。

谢谢,您的答案是正确的,但我接受Mike的答案,因为添加+号更快,代码更少。:)
if( a > b){
if(+a > +b){
var a = $("#number").val() * 1;
var a = parseInt($("#number").val(), 10);