PDA

View Full Version : Gặp khó khăn với Javascript



nson_p
28-10-2010, 14:58
Mình làm 1 trang web có nhiều textbox. Yêu cầu là khi trỏ chuột vào (focus) textbox nào thì background của textbox đó sẽ chuyển sang màu vàng, còn khi không còn trỏ chuột nữa (blur) thì nó chuyển sang màu trắng lại.

Nếu mình làm trực tiếp như thế này thì được:
<input type="text" onfocus="this.style.backgroundColor= '#FFFF66';" onblur="this.style.backgroundColor= '#ffffff';" />
Nhưng nếu trang web có cả trăm cái textbox thì rất bất tiện phải addcode vào từng thằng như vậy

Mình nghĩ để nhanh hơn thì dùng javascript thế này:
<script type="text/javascript" language="javascript">
function textfocus()
{
this.style.backgroundColor= '#FFFF66';
}
function textblur()
{
this.style.backgroundColor= '#ffffff';
}
</javascript>
<input type="text" onfocus="textfocus()" onblur="textblur()" />

Nhưng hàm javascript này không chạy được.
Các bạn có biết cách xử lý giúp mình với

ledangkhoalt
28-10-2010, 15:15
Cái dưới chạy ok đó. BẠn bị sai thẻ đóng nè </javascript> -> </script>.
còn "this" thì nó hiểu hàm này chứ ko phải cái text box, bạn phải chỉ rỏ đối tượng nào

//////////////////////////////////////////////////////////

<script type="text/javascript" language="javascript">
function textfocus(o)
{
o.style.backgroundColor= '#FFFF66';
}
function textblur(o)
{
o.style.backgroundColor= '#ffffff';
}
</script>



<input type="text" onfocus="textfocus(this)" onblur="textblur(this)" /><br>
<input type="text" onfocus="textfocus(this)" onblur="textblur(this)" />

nson_p
28-10-2010, 16:41
Thank nhiều pro. Mình làm được rồi. Đúng là pro, giải đáp nhanh quá

satthudatinh011
28-10-2010, 17:51
nếu dùng jquery để addclass css, vì thế viết trong một file js riêng
ko cần phải khai báo kiểu này
<input type="text" onfocus="textfocus(this)" onblur="textblur(this)" />
<input type="text" onfocus="textfocus(this)" onblur="textblur(this)" />
trông nhìn code đỡ rắc rối hơn

Sugarman
28-10-2010, 19:53
Vậy mà gọi là nhanh hả :D.
Nếu chỉ đổi màu thì dùng CSS


input[type=text]:focus
{
background-color:#000000;
}


Nếu cần chạy script thì viết thế này (nếu dùng jQuery còn gọn hơn)


<script type="text/javascript">

var inputs = document.getElementsByTagName('INPUT');
for (var i = 0; i < inputs.length; i++) {
if (inputs[i].type == 'text') {
inputs[i].onfocus = focus;
inputs[i].onblur = blur;
}
}

function focus() {
this.style.backgroundColor = '#FFFF66';
}

function blur() {
this.style.backgroundColor = '#FFFFFF';
}

</script>

nh0kcon_02
28-10-2010, 21:56
không hiểu gì cả.................................