Внутри функции не срабатывает условие else if
Внутри функции не срабатывают условия else if.
Неважно какой пункт выпадающего списка я выбираю, у переменной num1 всегда будет значение 1000, сработает только первое условие if, else if не работают. Помогите понять в чём ошибка
<div class="spisok1" >
<select id="spisok11" onchange="calculated(this);">
<option value="opt1">Выберите пункт</option>
<option value="opt2">Первый</option>
<option value="opt3">Второй</option>
<option value="opt4">Третий</option>
</select>
</div>
function calculated(select){
let tip = select.options[select.selectedIndex];
alert(tip.value);
let num1 = tip;
if(num1 = "opt1" ){
num1 = 1000;
} else if (num1 = "opt3") {
num1 = 2000;
} else if(num1 = "opt4") {
num1 = 3000;
}
console.log(num1);
Ответы (1 шт):
Автор решения: ryzen
→ Ссылка
Во первых if (num1 = "opt1") это не сравнение, замените на if (num1 === "opt1").
Вы записываете в переменную num1 значение tip. В первом блоке if вы получаете true (num1 === "opt1" и перезаписываете переменную num1, теперь num1 === 1000.
Cоответственно при сравнении num1 === "opt3" и num1 === "opt4" вы получаете false, так как:
1000 !== "opt3" и 1000 !== "opt4".
let tip = select.options[select.selectedIndex];
let num1 = tip; // num1 = "opt1"
if (num1 === "opt1") { // "opt1" === "opt1" => true
num1 = 1000;
} else if (num1 === "opt3") { // 1000 === "opt3" => false
num1 = 2000;
} else if (num1 === "opt4") { // 1000 === "opt4" => false
num1 = 3000;
}