none
[急求解决] document.getElementById 缺少对象 RRS feed

  • 问题

  • 下面是一个用户控件 ascx... 

     

    <%@ Control Language="C#" AutoEventWireup="true" CodeFile="guide.ascx.cs" Inherits="bbs_common_guide" %>

        <script language="javascript" type="text/javascript">
    // <!CDATA[
            function checkForm() {
                if (document.getElementById("username").value == "") {
                    //event.returnValue = false;
                    alert("用户名无效,或密码错误。");
                    return false;
                }
                else if (document.getElementById("password").value == "") {
                    //event.returnValue = false;
                    alert("用户名无效,或密码错误。");
                    return false;
                }
                return true;
            }
    // ]]>
    </script>

     <%
        if (CookieHelper.get("uid")==null)
        {
     %>
            ......
    <%
        }
        else
        {
    %>
    <table  cellspacing="0" originalAttribute="href" originalPath="#">帮助</a>
                </div>
            </td>
        </tr>
    </table>
    <%
        }
        else
        {
    %>
            ......
    <%
        }
    %>

    <table cellspacing="0" cellpadding="0" width="98%" align="center">
        <tr>
            <td width="40%">
                <%
                    if (CookieHelper.get("uid") == null)
                    {  
                 %>
                
                <div align="left">
                    <asp:TextBox ID="username" runat="server" Width="30%" onclick="this.value=''">用户名</asp:TextBox>
                    <asp:TextBox ID="password" TextMode="Password" runat="server" Width="30%" onclick="this.value=''">密码</asp:TextBox>
                    <asp:Button ID="btnSubmit" runat="server" Text="登录" Width="20%" OnClientClick="return checkForm()" OnClick="btnSubmit_Click" />
                </div>
                <%
                    }
                    else if (CookieHelper.get("uid") != null)
                    {
                %>
                <div>
                    <a href="<%=pathPage%>index.aspx"><%=BbsSetting.bbsTitle%></a></div>
               <%
                    }
                %>
            </td>
                    <td width="60%" align="right">
               
            </td>
        </tr>
    </table>

    页面上有两个textbox,username和password,主要就是一个登陆
    就是每次在主页运行时,按下按钮,都提示 “缺少对象”;
    不明白,希望大家帮忙下,谢谢了

    2009年3月7日 12:29

答案

  • 因为楼主使用用户控件,而用户控件中的控件添加到页面之后,客户端的ID会发生变化,加上了用户控件本身的ID,所以你的脚本肯定找不到控件,请楼主在浏览器中显示你的页面,然后查看页面源代码,就会看到你的控件在客户端的真正的ID值,然后更改你的脚本,把控件ID改为你看到的客户端的真正ID。

    理解的越多,需要记忆的就越少
    2009年3月8日 0:58
    版主

全部回复

  • 楼主在页面中右键,查看源代码,看看是不是你的控件的ID在客户端发生了变化?

    理解的越多,需要记忆的就越少
    2009年3月7日 12:47
    版主
  • 应该是跟javascript 有关系,看网上介绍 说 载入还未完全,找不到对象之类的,不懂
    就是登陆框有username和password
    按下按钮之前检查是否有输入数据,但就是出现错误,找不到对象
    大家帮忙了

    2009年3月7日 14:06
  • 因为楼主使用用户控件,而用户控件中的控件添加到页面之后,客户端的ID会发生变化,加上了用户控件本身的ID,所以你的脚本肯定找不到控件,请楼主在浏览器中显示你的页面,然后查看页面源代码,就会看到你的控件在客户端的真正的ID值,然后更改你的脚本,把控件ID改为你看到的客户端的真正ID。

    理解的越多,需要记忆的就越少
    2009年3月8日 0:58
    版主
  •   问题已经解决,确实是控件的ID在客户端发生了变化
    非常感谢大家了
    2009年3月8日 1:26