我试图在点击链接按钮时使用javascript设置标签的背景颜色
但是,背景将闪烁所需的颜色,然后回落到无背景。下面我有javascript函数以及有问题的控件
我试图用display ='none'强制重绘,显示=''但没有用
此外,我已经尝试通过使标签成为标准控件来使标签不在服务器上运行
我也在设置样式的两个区域都设置了中断,并且调用了LightGreen,但是空白不是,因此不确定背景被消隐的位置,因为这在其他任何地方都没有指定。
谢谢,詹姆斯
标签
<asp:Label runat="server" Font-Bold="true" id="lblCustomer">Customer:</asp:Label>
Javascript
function CheckUncheckAll(clientID, listID, check) {
var chk = clientID.getElementsByTagName("input");
for (var i = 0; i < chk.length; i++) {
chk[i].checked = check;
}
if (check) {
document.getElementById(listID.id).style.backgroundColor = "LightGreen";
}
else {
document.getElementById(listID.id).style.backgroundColor = "";
}
}
背后的代码
lbCustomerAll.Attributes.Add("onclick", "CheckUncheckAll(" + ckbxlstCustomer.ClientID + ", " + lblCustomer.ClientID + ", true)");
答案 0 :(得分:0)
如果您执行以下操作会怎么样?
function CheckUncheckAll(clientID, listID, check) {
var evt = document.getElementById(clientID);
evt.preventDefault();
var chk = clientID.getElementsByTagName("input");
for (var i = 0; i < chk.length; i++) {
chk[i].checked = check;
}
if (check) {
document.getElementById(listID.id).style.backgroundColor = "LightGreen";
}
else {
document.getElementById(listID.id).style.backgroundColor = "";
}
}
这样可以防止链接按钮的默认行为被触发。
答案 1 :(得分:0)
checked
不是true / false值,它是二进制属性。
element.checked = true; //will fail
element.checked ='checked'; //will work
如果传递的“check”值为true / false,则代码将无效。
P.S。值得学习jQuery。您可以在一行代码中完成所有这些操作。
答案 2 :(得分:0)
遇到同样的问题。不小心,我意识到问题在于Button标签和onclick功能的关联。
如果我将按钮更改为其他任何内容,例如h1
,或者如果我将功能更改为onmouseover
,则可以正常工作。但是,不知道为什么会这样做。