Javascript 给出错误答案的数字
我有一个表单,用户在其中填写一个数字,然后将该表单的值与旁边的度量值进行比较。在这种情况下,每当我输入数字1时,它看起来好像没有被读取,它总是给我错误的结果。不管是1、10、111还是1111000,输出总是错误的 下面是代码片段:Javascript 给出错误答案的数字,javascript,laravel,web,Javascript,Laravel,Web,我有一个表单,用户在其中填写一个数字,然后将该表单的值与旁边的度量值进行比较。在这种情况下,每当我输入数字1时,它看起来好像没有被读取,它总是给我错误的结果。不管是1、10、111还是1111000,输出总是错误的 下面是代码片段: var elC4 = document.getElementById("elC4"); elC4.addEventListener("focusout", function () { var elE4 = document.getElementById("e
var elC4 = document.getElementById("elC4");
elC4.addEventListener("focusout", function () {
var elE4 = document.getElementById("elE4");
var val = elD4.value;
var result = val.match(/\d/g);
result = result.join("");
console.log(elC4.value);
console.log(result);
console.log(elC4.value > result);
if (elC4.value > result) {
elE4.value = "Tidak Memenuhi";
} else {
elE4.value = "Memenuhi";
}
});
console.log:
我圈出的那一行是有问题的一行,其他的都有类似的功能,工作正常
那么到底出了什么问题?我想你是在比较两个字符串。所以,结果是不正确的
"10" > "2" ==> result is false
我建议这样比较:
+"10" > +'2" ==> result will be true ( in this case: +elC4.value > +result )
希望这对你有帮助,兄弟 看起来您在比较两个字符串,而实际上您必须比较两个数字 我建议强制这些值为数字,一种方法是: 在这些值后面添加
+
:
var elC4=+document.getElementById(“elC4”)代码>屏幕截图没有真正的帮助。您正在比较的两个值是什么?它们的数据类型是什么?因为您想要比较数字,所以不要执行result=result.join(“”)
,而是使用parseInt将字符串解析为整数,如下所示parseInt(result,10))
。第二个参数(10
)是要分析的数字的基数。