Thay đổi màu nền thẻ body trong HTML

Chào mn, mình có viết hàm thay đổi màu nền thẻ body bằng cách nhập mã màu vào thẻ input rồi nó sẽ tự động cập nhật màu. Nếu mình truyền màu vào biến t thì nó đổi màu, còn truyền vào this->value thì nó sai. Mong mn giúp đỡ ạ, mình cảm ơn.

<meta charset="utf-8">
<title>Untitled Document</title>
	<script>
		function F(v)
		{
		     t = document.getElementsByTagName("body");
			t[0].style.backgroundColor="#"+v;
		}
	</script>
</head>

<body >
	<input type="text" id ="t1" onKeyPress="F(this->value);">
</body>
</html>

Bạn đang viết ngôn ngữ gì vậy. JS mix với C++ ?

2 Likes

Quả là thế, đây là ngôn ngữ JSC++ có thể chạy trên mọi HĐH và bất cứ trình duyệt nào. :smiling_imp:


Chắc bạn @Vinh_Nguyen4 “lậm” C++ quá nên không biết/nhớ rằng thuộc tính của biến (đối tượng) trong javascript dùng dấu chấm (.).

this.value;
1 Like

Hjhj, mình nhầm chút, mà mình chuyển qua dấu chấm rồi cũng ko đổi màu được bác.

Mình học C++ nên nhầm chút, khi mình sửa lại dấu (.) thì nó cũng ko đổi màu được ạ.

https://jsfiddle.net/tLd3nrb9/

onKeyPress="F(this->value);" => onKeyPress="F(this.value);"

Sự kiện onkeypress không chạy trong trường hợp dùng bàn phím ảo của android. Thay vào đó dùng oninput.

3 Likes

Vấn đề ở đây là khi lấy text từ input có vấn đề. Đó là bạn sẽ không lấy được đầy đủ từ khi nhập vao :smile: Bạn cứ thử in nó ra mà xem.


Cách giải quyết là sử dụng event onkeyup hoặc oninput như @SITUVN.gcd đã chỉ bạn :smile:

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?