Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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 “为什么?”;大于;比较数字会得到意想不到的结果_Javascript_Jquery_Html - Fatal编程技术网

Javascript “为什么?”;大于;比较数字会得到意想不到的结果

Javascript “为什么?”;大于;比较数字会得到意想不到的结果,javascript,jquery,html,Javascript,Jquery,Html,有一个输入字段,像这样 <input class="form-control" type="number" name="recieved_by_quantity" id="quantity" /> document.getElementById('quantity').value = qu; //var qu=11 lets say 现在,我想要的是,如果用户手动输入一个大于“qu”的值,那么该值将自动更改为“qu” 我为此所做的是 document.getEleme

有一个输入字段,像这样

 <input class="form-control" type="number" name="recieved_by_quantity" id="quantity" />
 document.getElementById('quantity').value = qu;    //var qu=11 lets say
现在,我想要的是,如果用户手动输入一个大于“qu”的值,那么该值将自动更改为“qu”

我为此所做的是

 document.getElementById('quantity').addEventListener("change", function() {
    var qc = this.value; 
    if(qc>qu) {
        this.value = qu;
    } 
});
发生的奇怪的事情是,如果我输入从2到无穷大的任何值,它会将所有值都更改为11。它不改变的唯一值是0,1,10100100010000,依此类推。。 我完全糊涂了。请帮助。

使用parseInt

var qc = parseInt(this.value)

它很简单,使用parseInt获取文本区域的实际数值

默认情况下,您将获得字符串

该值为“11” parseInt(this.value)给您11


var-qu=11;
document.getElementById('quantity')。value=qu;
document.getElementById('quantity').addEventListener(“更改”,函数(){
var qc=parseInt(此.value);
如果(qc>qu){
这个值=qu;
} 
});

您的代码似乎工作正常:qu的值是多少?是数字
11
还是字符串
“11”
?解释他为什么要这样做。如果
qu
是一个数字,就不需要这样做了。@yogeshprajapati:这个答案有助于你理解为什么吗?我承认,qu是动态解析的,使用var qu=$(z).parent();是的,这对我帮助很大。qu实际上是一个字符串而不是一个数字