gpt4 book ai didi

Javascript 变量在不应该为 true 时变为 true

转载 作者:行者123 更新时间:2023-12-01 03:50:10 26 4
gpt4 key购买 nike

我有一家商店。 1 strip 过滤器,1 strip 元素。过滤栏有价格输入字段 FROM 和 TO看起来像这样

<input id="pricefrom" type="text" placeholder="Min" style="position:relative; float: left; width:100px;">
<input id="priceto" type="text" placeholder="Max" style="position:relative; float: right; width:100px;">

以及当用户聚焦时处理输入的脚本:

$("#pricefrom").focusout(function() {
var from = $("#pricefrom").val();
var to = $("#priceto").val();
console.log("from: "+from);
console.log("to: "+to);
if(from > to){
$('#pricefrom').val(to);
from = to;
console.log("from > to");
}
drawItems(from, to);
});
$("#priceto").focusout(function() {
var from = $("#pricefrom").val();
var to = $("#priceto").val();
console.log("from: "+from);
console.log("to: "+to);
if(to < from){
$('#priceto').val(from);
to = from;
console.log("to < from");
}
drawItems(from, to);
});

如果用户将 FROM 价格设置为大于 TO 价格,则会使其相等。输入“150-50”=>“150-150”

但是它只正确工作了一次。例如,它有“200-200”值。我将 FROM 价格修正为 50 值。它记录“from: 50”“to: 200”“from > to”并使 FROM 等于 200。但是它的值更低,(from > to)到底是如何变成真的?

抱歉英语不好。

最佳答案

.val() 返回字符串,而不是数字,因此您执行的是字典比较,而不是数字比较。字符串“50”大于“150”

在比较之前将值转换为数字。

var from = parseInt($("#pricefrom").val(), 10);
var to = parseInt($("#priceto").val(), 10);

关于Javascript 变量在不应该为 true 时变为 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43292212/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com