一个js问题

jisuanjizhuan 2012-10-15 01:19:50
========================js============================
<script type="text/javascript">
function setstateonchange() {
if (document.getElementById("DropDownList1").value == '是') {
document.getElementById("TextBox1").readOnly = false;
}
else {
document.getElementById("TextBox1").value = "";
document.getElementById("TextBox1").readOnly = true;
}
}
</script>
==========================a.aspx=================================
<asp:DropDownList ID="DropDownList1" runat="server">
<asp:ListItem>否</asp:ListItem>
<asp:ListItem>是</asp:ListItem>
</asp:DropDownList>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
================================a.aspx.cs==========================
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DropDownList1.Attributes.Add("onchange", "setstateonchange()");
}
}

如果a.aspx是普通页上面的代码是没有错的,但如果a.aspx是引用模板页的内容页js就出错。

if (document.getElementById("DropDownList1").value == '是') //这句出错 Microsoft JScript 运行时错误: 缺少对象

如何解决这个问题呢?
...全文
123 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
chuxue1342 2012-10-15
  • 打赏
  • 举报
回复
<script type="text/javascript">
function setstateonchange(OBJ) {
if (OBJ.value == '是') {
document.getElementById("TextBox1").readOnly = false;
}
else {
document.getElementById("TextBox1").value = "";
document.getElementById("TextBox1").readOnly = true;
}
}
</script>

document.getElementById("TextBox1"),这个最好也别用服务器控件了!
chuxue1342 2012-10-15
  • 打赏
  • 举报
回复
后台: DropDownList1.Attributes.Add("onchange", "setstateonchange(this)");

前台:
<script type="text/javascript">
function setstateonchange() {
if (this.value == '是') {
document.getElementById("TextBox1").readOnly = false;
}
else {
document.getElementById("TextBox1").value = "";
document.getElementById("TextBox1").readOnly = true;
}
}
</script>
jisuanjizhuan 2012-10-15
  • 打赏
  • 举报
回复
if判断是没问题了,但
document.getElementById('<% =TextBox1.ClientID %>').style.visibility = "visible";
//这句出错 Microsoft JScript 运行时错误: 缺少对象

function setstateonchange() {

if (document.getElementById('<% =DropDownList1.ClientID %>').value == '是') {
document.getElementById('<% =TextBox1.ClientID %>').style.visibility = "visible";
}
else {
document.getElementById('<% =TextBox1.ClientID %>').value = "";
document.getElementById('<% =TextBox1.ClientID %>').style.visibility = "hidden";
}
}
IT0329 2012-10-15
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
套用模板页之后,控件的客户端id会跟着改变
换成下面这样
alert(document.getElementById('<% =DropDownList1.ClientID %>').value);

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧