jquery - Simple javascript if statement but can't find where is wrong -
simple if can't find problem. why form return alert if values correct?
if ( (($("#tip1").val()) > (value + tolerance)) || (($("#tip1").val()) < (value + tolerance)) || (($("#tip2").val()) < (value + tolerance)) || (($("#tip2").val() ) > (value + tolerance)) ){ alert('stop'); } if values correct or not correct return alert time;
updated answer based on comments , updated question:
based on names "value" , "tolerance" , comments below, think problem in need value - tolerance when doing < checks. e.g.:
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'); } so instance, suppose value 450 , tolerance 15, , we're testing (test) value 440:
// 440 should fine if want 450 -+ 15 test = 440; // original test: console.log(440 < (450 + 15)); // true => fails, alert -- 440 < 465 // corrected test: console.log(440 < (450 - 15)); // false, value okay i put tests tip1 , tip2 in same order, avoid confusion, , give myself meaningful name 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'); } original answer:
your statement says:
if #tip1's value > (value + tolerance)
or
#tip1's value < (value + tolerance)
or
#tip2's value > (value + tolerance)
or
#tip's value > (value + tolerance)
..then alert.
only one of them has true show alert. if you're seeing alert, means 1 of 4 conditions true. can find out one.
those first 2 conditions, of course, can combined into
(($("#tip1").val()) != (value + tolerance)) speculations on error is:
you didn't mean use value 3 different elements (
#tip1,#tip2,#tip), e.g., perhaps @ least 1 of typo (the last pretty suspicious).if both
value,tolerancestrings (for instance, if got them.val()in code haven't shown),value + tolerancedoing string concatenation, not addition. e.g.,"1" + "2""12". happening, both have strings rather numbers (1 + "2"3, ,"1" + 23).based on names "value" , "tolerance", when doing
<comparisons, may have meant use(value - tolerance). e.g., if goal see if12within3(tolerance) of14, you'd wanttipvalue < (value - tolerance).
Comments
Post a Comment