从文本框中提取用户条目并将其存储在javascript中的变量中

时间:2013-01-28 23:15:58

标签: javascript asp.net

// text Box
        &nbsp;&nbsp;<asp:TextBox ID="TextBox3"  runat="server" BackColor="Silver" 
            BorderColor="Silver" ontextchanged="TextBox3_TextChanged" 
            style="margin-left: 6px" Width="154px"></asp:TextBox>

// Submit button
        &nbsp;<asp:Button ID="Button6" runat="server" BackColor="Silver" 
            onClientclick='store_memID()' style="margin-left: 20px" Text="Submit" 
            Width="102px" Font-Bold="True" Height="28px" />


    <script type = "text/javascript">
        // Function to caputure client-input- Member_ID.
        function store_memID() {

            var mem_ID = document.getElementById('TextBox3').value;


            return confirm('TimeLine is displayed for: ' + mem_ID);
        }

    </script>

当我运行代码并在文本框中输入一个值,然后按提交按钮: - “Microsoft JScript运行时错误:无法获取属性'value'的值:object为null或undefined”。



否则,如果我删除'.value': -

<script type = "text/javascript">
    // Function to caputure client-input- Member_ID.
    function store_memID() {

        var mem_ID = document.getElementById('TextBox3');


        return confirm('TimeLine is displayed for: ' + mem_ID);
    }

</script>

然后运行程序,在文本框中输入值,然后按提交,然后我得到: -

“TimeLine显示为:Null”

我一直在研究解决这个问题。不知道什么是错的......

编辑(修复): - 我的文本框的服务器端ID是“TextBox3”,但这不一定与客户端ID匹配。 获取客户端ID: - '&lt;%= TextBox3.ClientID%&gt;'

2 个答案:

答案 0 :(得分:2)

自从我编写asp表单以来已经有一段时间了,但客户端(在浏览器中)的id很可能不是你想象的那样。这是我心目中Web表单的主要缺陷之一(这可能在4.0版本中变得更简单,你必须检查它)。您可以使用css类(并使用jQuery或类似方法来查找元素)或将客户端id注入java脚本,例如。

<script type = "text/javascript">
    // Function to caputure client-input- Member_ID.
    function store_memID() {
        var mem_ID = document.getElementById('<%=TextBox3.ClientID%>').value;
        return confirm('TimeLine is displayed for: ' + mem_ID);
    }
</script>

更新:在评论中指出的ClientID中修复了大小写错误

答案 1 :(得分:1)

您正在使用主要用于服务器端代码的asp文本框。您放置在标记中的ID不能保证与呈现的元素的ID匹配。

您需要在浏览器中检查您的html以查找呈现的ID。 (可能会看起来像:ct100_TextBox3)并使用它。或者,如果您没有进行任何服务器端编码,最好将文本框转换为<input />字段或<textarea />