none
JS 怎么取不到用户控件内 控件的值? RRS feed

  • 问题

  •   a.ascx:
         <a href="javascript:Goul('<%=HiddenField1.ClientID%>')" style="color:Black">注册</a>
                            <asp:HiddenField ID="HiddenField1" runat="server"  Value="enabledStr"/>

        js:
                 function Goul(o)
    {
         if(document.getElementById(o).vaule =="enabledStr")//
         {
    //         window.location.href="../user/register/Default.aspx";
               alert('no zhi');
         }
         else
         {
            alert(document.getElementById(o).vaule);   这里弹出:undefined,
    //        alert('对不起!目前本站暂不开放注册功能!');
     }
      }

              控件的 ID也认到了呀,就是value取不到:
       帮忙看下吧!

    efforts..
    2010年3月3日 5:55

答案

  • 你好,

    你的代码写错了。

    不是“vaule”,而是“value”。你根据提示修改下你的代码应该没问题。
    Microsoft Online Community Support
    2010年3月5日 2:02

全部回复

  • 第一,用户控件里的控件要用PUBLIC申明.
    第二,拖入用户控件进.aspx文件,查看id的属性,并且记住他,在此.aspx文件的.cs文件里用 public 用户控件名 用户控件ID,比如,你的用户控件名是uc,拖入.aspx后你的ID是uc1,那么你就这样写public 命名空间.uc uc1;
    3.写一个方法获取用户控件里的子控件值.

    在asp.net中,经常会用到用户控件,有时候还要从用户控件中的某个控件获取相应的值,
    如下例子是获取dropdownlist的选中值的。
    方法1:把用户控件放在一个div中,姑且就起个名字叫mydiv吧childNodes[0]是表示用户控件中的第一个控件是div的第一个子节点,此处我的dropdownlist是用户控件中的第一个控件(可以 在页面查看源文件得知位置),此时位置很重要
    function getUserControlvalue()
    //{
    //    //获取用户控件中的dropdownlist的选择值
    //    var drp= document.getElementById('MyDiv').childNodes[0].nextSibling;
    //    var drpindex = drp.selectedIndex;  
    //    var drpValue =drp.options[index].value;

    方法2:直接用户控件id+控件id,如我的用户控件名在页面中为uc1,控件为drp1
    document.getElementById('uc1_drp1')

    咯咯
    2010年3月3日 6:20

  •   方法2:直接用户控件id+控件id,如我的用户控件名在页面中为uc1,控件为drp1
    document.getElementById('uc1_drp1')

    直接用户控件id+控件id 不行的,还是找不到!用控件的<%=xxx.ClientID%>这种写法不报错,但是最后生成的控件名就是用户控件id_控件id, 为什么取不到值呢?

    efforts..
    2010年3月3日 6:30
  • document.getElementById("<%=xxx.ClientID%>")
    【孟子E章】
    2010年3月4日 0:52
    版主
  • 你好,

    你的代码写错了。

    不是“vaule”,而是“value”。你根据提示修改下你的代码应该没问题。
    Microsoft Online Community Support
    2010年3月5日 2:02