Em đang muốn làm một cái dropdown list khi người dùng chọn một item bất kỳ thì sẽ hiện ra giá ở bên cạnh. Em có thử được một cách là sử dụng event listener ở bên html còn function thì đặt bên Javascript
code HTML:
<!DOCTYPE html>
<head>
<script src="test.js"></script>
</head>
<html>
<body>
<p>Select an item from the list.</p>
<select id="mySelect" onchange="myFunction()">
<option value="item1">item1
<option value="item2">item2
<option value="item3">item3
<option value="item4">item4
</select>
<p>Price: <span id="demo"></span></p>
</body>
</html>
code Js:
"use strict";
function myFunction() {
var x = document.getElementById("mySelect").value;
var price = document.getElementById("demo");
switch(x) {
case "item1":
price.innerHTML = "300,000";
break;
case "item2":
price.innerHTML = "500,000";
break;
case "item3":
price.innerHTML = "800,000";
break;
case "item4":
price.innerHTML = "900,000";
break;
}
}
function init() {
}
window.onload = init;
Nhưng khi em mang cái event listener “onchange” từ HTML sang bỏ vào trong init() của Js thì nó lại không hoạt động
"use strict";
function myFunction() {
var x = document.getElementById("mySelect").value;
var price = document.getElementById("demo");
switch(x) {
case "item1":
price.innerHTML = "300,000";
break;
case "item2":
price.innerHTML = "500,000";
break;
case "item3":
price.innerHTML = "800,000";
break;
case "item4":
price.innerHTML = "900,000";
break;
}
}
function init() {
document.getElementById("mySelect").onchange = myFunction();
}
window.onload = init;
Mọi người có thể giải thích cho em đc ko ạ. Em cảm ơn
P/s: Em có nghĩ đến lý do là tại vì cái init() nó chỉ call 1 lần khi window load thôi nhưng mà em thử với lại .onclick thì lại làm được nhiều lần…