
Oprava JS kódu
Ahoj, můžete mi prosím poradit proč tohle nefunguje?
<form id="form" action="/">
<input type="button" value="a">
<input type="button" value="b">
<input type="button" value="c">
</form>
<script>
document.addEventListener('click', function (str) {
if ( str === 'a' ) console.log('Bylo kliknuto na tlačítko 'a');
else if ( str === 'b' ) console.log('Bylo kliknuto na tlačítko 'b');
else if ( str === 'c' ) console.log('Bylo kliknuto na tlačítko 'c');
});
</script>
str je undefined / null, a ani nieje správne selectnutý element.
ani tie else if nedávajú logiku, najmä když predchádzajúci if je ukončený stredníkom... ja bych tam použil všade len if... bez jQuery selector skrz element.querySelector() je taky vhodnejšia voľba
Ok, ještě navíc.
Nikoli. Kdybys použil debugger, nebo rovnou console.log(str), zjistíš, že typ proměnné str je Event, případně element formuláře, (takže text se získá str.value)
a není náhodou lepší místo té ifové mašinérie použít switch nebo rovnou sprintf, když je to pokaždé stejné? Tahle procedurálnost postrádá smysl.