Kla*_*ius 1 javascript jquery if-statement
简单但如果找不到问题的地方.如果值正确,为什么我的表单会返回警报?
if ( (($("#tip1").val()) > (value + tolerance)) ||
(($("#tip1").val()) < (value + tolerance)) ||
(($("#tip2").val()) < (value + tolerance)) ||
(($("#tip2").val() ) > (value + tolerance))
){
alert('STOP');
}
Run Code Online (Sandbox Code Playgroud)
如果我的值正确或不正确,请随时返回警报;
根据评论和更新的问题更新了答案:
根据名称"值"和"容差"以及下面的评论,我认为value - tolerance在进行<检查时您需要的是问题.例如:
var tip1Value = $("#tip1").val();
var tip2Value = $("#tip2").val();
if ( tip1Value > (value + tolerance) ||
tip1Value < (value - tolerance) || // <== - not +
tip2Value < (value - tolerance) || // <== - not +
tip2Value > (value + tolerance)
){
alert('STOP');
}
Run Code Online (Sandbox Code Playgroud)
例如,假设value是450和tolerance是15,我们正在测试(test)值440:
// 440 should be fine if we want 450 -+ 15
test = 440;
// Your original test:
console.log(440 < (450 + 15)); // true => fails, we get the alert -- 440 < 465
// Corrected test:
console.log(440 < (450 - 15)); // false, the value is okay
Run Code Online (Sandbox Code Playgroud)
我也会把tip1和tip2的测试放在同一个顺序,以避免混淆,并可能给自己一个有意义的名称value + tolerance和value - tolerance:
var tip1Value = $("#tip1").val();
var tip2Value = $("#tip2").val();
var maxValue = value + tolerance;
var minValue = value - tolerance;
if ( tip1Value > maxValue ||
tip1Value < minValue ||
tip2Value > maxValue ||
tip2Value < minValue
){
alert('STOP');
}
Run Code Online (Sandbox Code Playgroud)
原始答案:
你的陈述说:
如果#tip1的值是 > (value + tolerance)
要么
#tit1的价值是 < (value + tolerance)
要么
#tit2的价值是 > (value + tolerance)
要么
#tip的价值是 > (value + tolerance)
然后做警报.
只有其中一个必须是真实的以显示警报.因此,如果您看到警报,则表示这四个条件中的一个是真的.只有你可以找出哪一个.
当然,前两个条件可以组合成
(($("#tip1").val()) != (value + tolerance))
Run Code Online (Sandbox Code Playgroud)
猜测错误是什么:
你并不想从三个不同的元素(使用值#tip1,#tip2,#tip),例如,也许那些至少有一个是一个错字(最后是相当可疑的).
如果两个value和tolerance的字符串(例如,如果你得到了他们.val()的代码,你没有显示),然后value + tolerance是做字符串连接,而不是加法.例如,"1" + "2"是"12".但是要发生这种情况,两者都必须是字符串而不是数字(1 + "2"是3,"1" + 2也是3).
根据名称"值"和"容差",在进行<比较时,您可能打算使用(value - tolerance).例如,如果目标是查看是否12在3(容差)范围内14,您需要tipvalue < (value - tolerance).