调用颜色对话框时为什么点击"取消"按钮会是这个效果??
我想达到这样的效果,某个输入框中有某种颜色对应的十六进制数值;
在该输入框中单击就弹出颜色对话框,选择颜色点确定后,对应的十六进制颜色就显示在该输入框中
现在问题是,我点颜色对话框中的“取消”按钮时,黑色对应的十六进制颜色也显示在该输入框中,而且一直是黑色,也许是弹出时黑色是默认颜色的关系吧
请帮我改改~~谢谢!!!
代码如下:(我用的是asp.net,大家只要看JS就可以了吧....)
aspx:
<head runat= "server ">
<title> 无标题页 </title>
</head>
<body>
<script>
var sInitColor = null;
function callColorDlg(btn){
if (sInitColor == null)
var sColor = dlgHelper.ChooseColorDlg();
else
var sColor = dlgHelper.ChooseColorDlg(sInitColor);
sColor = sColor.toString(16);
if (sColor.length < 6) {
var sTempString = "000000 ".substring(0,6-sColor.length);
sColor = sTempString.concat(sColor);
}
sColor = "# " + sColor;
//alert(sColor);
btn.value=sColor; // 值
btn.style.color=sColor; // 前景色
btn.style.backgroundColor=sColor; // 背景色
}
</script>
<OBJECT id= "dlgHelper " CLASSID= "clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b " width= "0px " height= "0px "> </OBJECT>
------------
aspx.cs中:
TextBox1.Attributes.Add( "onclick ", "callColorDlg(TextBox1) "); // 增加单击事件
------解决方案--------------------黑色是默认值,不管你选择黑色或者点取消,sColor返回的值都是0
------解决方案--------------------精辟.0就是默认的黑色对吧 即000000
------解决方案--------------------up
------解决方案--------------------if (sColor.length < 6) {
var sTempString = "000000 ".substring(0,6-sColor.length);
sColor = sTempString.concat(sColor);
}
这个if删掉就可以了