Mam pytanie o JSa czystego bez jquery. Potrzebuję wiedzieć w evencie change jaka była wartość w select przed zmianą. Przykładowy kod:
<select id="selInput">
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
</select>
<script>
const selectInput = document.getElementById('selInput');
selectInput.addEventListener('change', function (e) {
if (e.beforeChangeValue == 'A' && this.value == 'D') { //jak dostać coś w stylu e.beforeChangeValue?
//do something if changed A to D
}
});
</script>
Jedyne rozwiązanie jakie przychodzi mi do głowy to zapisywanie do zmiennej *obok * wartości po każdej zmianie w select, tak by przy kolejnym wywołaniu eventa mieć poprzednią wartość. Tutaj jednak mam zastrzeżenie, bo robić się zaczyna spaghetti code, jeśli kod jest dużo bardziej rozbudowany i w kilku miejscach z kodu JSa nawet zmieniamy value selecta. Pamiętanie w każdym tym miejscu by do tej zmiennej obok zapisać poprzednią wartość tworzy bardzo słaby kod. W C# czy JAVA, bez problemu w evencie można otrzymać poprzednią i zaktualizowaną wartość.