javascript运行时错误无法获取属性'值'未定义或null

时间:2017-03-09 07:17:09

标签: javascript asp.net

以下是验证空文本框的Javascript函数,但我收到错误消息:

  

" javascript运行时错误无法获取属性'值'未定义或null"。

我已检查此问题的现有答案,但我仍不确定为什么Textbox_login.ClientID值未被提取。

请指教,谢谢。

<script type ="text/javascript">

    function textboxvalidate() {
        var login = document.getElementById('<%=Textbox_Login.ClientID%>').value;

        if (login == "") {
            alert("Please enter a login");
            return false;
        }

    }
</script>

2 个答案:

答案 0 :(得分:0)

请添加Tags: Asp.net

您需要将控件上的ClientIDMode属性设置为:

ClientIDMode="Static"

这适用于.Net 4.0及更高版本。

关于ClientIdMode的MSDN文档说明:

  

静态 ClientID值设置为ID属性的值。如果控件是命名容器,则控件用作   为它的任何控件命名容器的层次结构的顶部   包含。

示例:

<asp:TextBox ID="Textbox_Login" ClientIDMode="Static" runat="server" />

答案 1 :(得分:0)

如果Textbox_Login runat属性设置为server或Textbox_Login元素位于runat服务器的另一个元素内,则无法使用document.getElementById()获取元素

并且您也不需要在此处使用c#代码。只需输入您的元素ID

ex:var login = document.getElementById(“Textbox_Login”)。value;

确保Textbox_Login的runat属性未设置为server,Textbox_Login元素不在runat服务器的其他元素中。