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实际上是一个字符串而不是一个数字