首页 新闻 赞助 找找看

在源页面使用JavaScript拿控件出错,求解

0
悬赏园豆:50 [已解决问题] 解决于 2011-03-19 17:17

我想完成一个这样的功能, 当那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控件。 但是后天就拿不到那个文本框的值了 。帮忙解释一下我思路那里错了, 怎么实现那功能。

我还只是一个菜鸟~!的主页 我还只是一个菜鸟~! | 初学一级 | 园豆:2
提问于:2011-03-10 20:50
< >
分享
最佳答案
0

首先,你要保证你的html控件必须有个name属性=AddBedPrice。

后台取值可以直接用Request.Form["AddBedPrice"]就可以了

收获园豆:50
I,Robot | 大侠五级 |园豆:9783 | 2011-03-10 23:56
其他回答(2)
0

下面那个文本框如果用服务器端的控件的话,在客户端生的的ID就不是你写的那个ID了,所以你不能用document.getElementById("AddBedPrice")来取,AddBedPrice会变成基它的字符串,你查看一下页面生成的源代码就可以得到这个新的ID了,或者把AddBedPrice换成document.getElementById("<%=AddBedPrice.ClientID%>")来取。

danhuoren | 园豆:92 (初学一级) | 2011-03-10 21:15
0

<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>

我自己试着没问题

 

QA龙 | 园豆:162 (初学一级) | 2011-03-10 21:48
2L大大,我试了下, 但那样后代就拿不到值了啊。
加个name 啊,提交后后台 request["name值"]不就能接到值了啊
支持(0) 反对(0) QA龙 | 园豆:162 (初学一级) | 2011-03-12 09:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册