<asp:TextBox ReadOnly="true" ID="tbPhone" ClientIDMode="Static" runat="server" CssClass="tbStyle changeUpdate" Text=""></asp:TextBox>
<asp:TextBox ReadOnly="true" ID="tbFax" ClientIDMode="Static" runat="server" CssClass="tbStyle changeUpdate" Text=""></asp:TextBox>
$('#tbPhone, #tbFax').keypress(function() { //works
this.style.backgroundColor = "#BCFFB9";
});
我会有很多文本框,并希望为每个文本框使用一个类,获取ID并设置背景颜色。这将确保我可以为所有文本框使用几行代码,无论数字如何。
所以我试过这个:
$(".changeUpdate").keypress(function() {
$(this).attr("id").style.backgroundColor = "#BCFFB9";
});
但我一直收到这个错误:
0x800a138f - Microsoft JScript runtime error: Unable to set value of the property 'backgroundColor': object is null or undefined
如何解决我的问题。
答案 0 :(得分:5)
你有点混合Javascript和jQuery语法,试试这个:
$(".changeUpdate").keypress(function() {
//$(this).attr("id").style.backgroundColor = "#BCFFB9";
$(this).css("background-color","#BCFFB9");
});
答案 1 :(得分:1)
您没有正确选择班级&#39; changeUpdate&#39;用你的代码。 $(this).attr("id")
获取元素的id,但不选择它,这就是为什么存在未定义的引用错误。
使用:
// when the keypress event happens on an element with class changeUpdate
$('.changeUpdate').keypress(function () {
// Select all elements with class changeUpdate and change the css attribute 'background-color' to the color specified
$('.changeUpdate').css('background-color', '#BCFFB9');
});
或使用$(this).css('background-color', '#BCFFB9');
仅使用按键更改元素的背景颜色。