我想完成一个这样的功能, 当那Checkbox没选中的时候下面的文本框变为只读属性、
所以我写了一段这样的JavaScript代码。
function aa()
{
if(document.getElementById("CheckBox1").Checked)
{
document.getElementById("AddBedPrice").Text="";
document.getElementById("AddBedPrice").ReadOnly=true;
}else
document.form1.AddBedPrice.ReadOnly=false;
}
问题就出来, 发现JavaScript找不到控件的对象,我猜是控件是服务器控件的原因, 所以就把控件换成html控件。 但是后天就拿不到那个文本框的值了 。帮忙解释一下我思路那里错了, 怎么实现那功能。
首先,你要保证你的html控件必须有个name属性=AddBedPrice。
后台取值可以直接用Request.Form["AddBedPrice"]就可以了
下面那个文本框如果用服务器端的控件的话,在客户端生的的ID就不是你写的那个ID了,所以你不能用document.getElementById("AddBedPrice")来取,AddBedPrice会变成基它的字符串,你查看一下页面生成的源代码就可以得到这个新的ID了,或者把AddBedPrice换成document.getElementById("<%=AddBedPrice.ClientID%>")来取。
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
<script type="text/javascript">
function aa() {
var txt = document.getElementById("AddeBdPrice");
if (document.getElementById("CheckBox1").checked) {
// txt.setAttribute("readonly", "");
txt.readOnly = "";
txt.Text = "";
} else {
txt.readOnly = "readonly";
}
}
</script>
</head>
<body >
<form id="form1" runat="server">
<div>
<input type="checkbox" id="CheckBox1" onclick="aa()"/>
<input type="text" readonly="readonly" id="AddeBdPrice">
</div>
</form>
</body>
</html>
我自己试着没问题