为什么JavaScript中的数字值的“大于”比较不起作用?即使迷你号码小于最大号码,下面的示例也会保持返回正确。JavaScript不比较大于最大数值的最小值
mini和maxi是表单输入值。这个例子使用jQuery来获取值,但很容易被剥离。
var mini = $('form#filterPrice input.min').val(); //eg. 500
var maxi = $('form#filterPrice input.max').val(); //eg. 1500
if(mini.valueOf() > maxi.valueOf()) { //also used: mini > maxi
alert('test'); //alerts "test" even when mini is less than maxi
$('form#filterPrice input.min').val(maxi); //should switch values if mini > maxi
$('form#filterPrice input.max').val(mini);
}
更换 “迷你> MAXI” 与 “Math.max(迷你,马克西)==迷你” 工作正常。因此,下面做工作:
var mini = $('form#filterPrice input.min').val(); //eg. 500
var maxi = $('form#filterPrice input.max').val(); //eg. 1500
if(Math.max(mini, maxi) == mini) {
alert('test');
$('form#filterPrice input.min').val(maxi);
$('form#filterPrice input.max').val(mini);
}
Javascript可能会将mini和maxi视为字符串,只是将它们进行词汇比较。在这种情况下'500'大于'1500'。 尝试在比较之前将mini和maxi转换为整数。 – Karl 2009-08-12 14:58:21