0

I am currently debugging a code I've not written and am generally not very experienced with JavaScript, but I am quite puzzled with this one. Why is the Script entering the second if Statement, when the condition is not true? :o

Code:

onChangeMinVotes(event) {
            console.clear()
            console.log("START");
            console.log("event.target.value: " + event.target.value);
            console.log("numberOfThemen: " + this.numberOfThemen);
            console.log("this.min_votes: " + this.min_votes);
            console.log("BEFORE UPDATE");
            this.update()
            console.log("AFTER UPDATE");
            console.log("event.target.value: " + event.target.value);
            console.log("numberOfThemen: " + this.numberOfThemen);
            console.log("this.min_votes: " + this.min_votes);
            console.log("BEFORE IF");
            if (event.target.value <= 0) {
                console.log("IF 1");
                this.min_votes = 1
            } else if (event.target.value > this.numberOfThemen) {
                console.log("IF 2");
                console.log("event.target.value: " + event.target.value);
                console.log("numberOfThemen: " + this.numberOfThemen);
                $('#myModal').modal("show")
                //this.min_votes = this.numberOfThemen
            } else if (event.target.value > 10) {
                console.log("IF 3");
                this.min_votes = 10
            }
            console.log("AFTER IF");
            console.log("event.target.value: " + event.target.value);
            console.log("numberOfThemen: " + this.numberOfThemen);
            console.log("this.min_votes: " + this.min_votes);
            console.log("END");
        },

Console Output:

Konsole wurde geleert. 
START 
event.target.value: 3 
numberOfThemen: 20 
this.min_votes: 3 
BEFORE UPDATE 
AFTER UPDATE 
event.target.value: 3 
numberOfThemen: 20 
this.min_votes: 3 
BEFORE IF 
IF 2 
event.target.value: 3 
numberOfThemen: 20 
AFTER IF 
event.target.value: 3 
numberOfThemen: 20 
this.min_votes: 3 
END 
  • 3
    You compare strings, that's why it fails – Justinas Mar 07 '22 at 14:52
  • 1
    @axiac - *"The value of event.target.value is a string and you compare it against a number. They are compared as strings"* That's not correct, they'd be compared as numbers. But of course, your example "`'20'` is smaller than `'3'`" *is* correct since they're both strings (and I assume it applies because `this.numberOfThemen` is also a string, but unfortunately the OP hasn't shown it to us...). – T.J. Crowder Mar 07 '22 at 14:56
  • Thanks.... Now I feel dumb. Let someone say again "There are no stupid questions" :) – theFinestHobo Mar 07 '22 at 14:58

0 Answers0