在Javascript中获取Textbox值

时间:2011-02-18 09:22:14

标签: javascript asp.net

我试图在javascript中获取文本框的值,但它不起作用。以下是我的测试页的代码

<%@ Page Title="" Language="VB" MasterPageFile="~/Site.Master" AutoEventWireup="false"
CodeFile="test3.aspx.vb" Inherits="test3" %>

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="Server">
<script language="javascript">

    function GetAlert() {

        var TestVar = document.getElementById('txt_model_code').value;
        alert(TestVar);

    }

</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="Server">
<asp:TextBox ID="txt_model_code" runat="server" ></asp:TextBox><br /><br />

<input type="button" value="db Function" onclick="GetAlert()" /><br />
</asp:Content>

那我哪里错了?如何在javascript ???

中的文本框中输入文本

6 个答案:

答案 0 :(得分:15)

使用

document.getElementById('<%= txt_model_code.ClientID %>')

而不是

document.getElementById('txt_model_code')`

此外,您可以使用onClientClick代替onClick

答案 1 :(得分:6)

这是因为ASP.NET更改了文本框的ID,如果您运行页面并执行查看源,您会看到文本框ID是

ctl00_ContentColumn_txt_model_code

这有几种方法:

使用实际控制名称:

var TestVar = document.getElementById('ctl00_ContentColumn_txt_model_code').value;

使用ASP脚本标记中的ClientID属性

document.getElementById('<%= txt_model_code.ClientID %>').value;

或者,如果您运行的是.NET 4,则可以使用新的ClientIdMode属性,有关详细信息,请参阅此链接。

http://weblogs.asp.net/scottgu/archive/2010/03/30/cleaner-html-markup-with-asp-net-4-web-forms-client-ids-vs-2010-and-net-4-0-series.aspx 1

答案 2 :(得分:2)

由于您拥有母版页并且您的控件位于内容占位符中,因此您的控件ID将在客户端生成不同。你需要做... ...

var TestVar = document.getElementById('<%= txt_model_code.ClientID %>').value;

Javascript在客户端运行,并获得您必须提供控件的客户端ID的价值

答案 3 :(得分:1)

您正在尝试的ID是服务器端。

这将在浏览器中以不同方式呈现。

尝试通过在浏览器中观看html来获取ID。

var TestVar = document.getElementById('ctl00_ContentColumn_txt_model_code')。value;

这可能有效。

或者做那个ClientID方法。这也有效但最终浏览器会得到我写的相同的东西。

答案 4 :(得分:0)

<script type="text/javascript" runat="server">
 public void Page_Load(object Sender, System.EventArgs e)
    {
        double rad=0.0;
        TextBox1.Attributes.Add("Visible", "False");
        if (TextBox1.Text != "") 
        rad = Convert.ToDouble(TextBox1.Text);    
        Button1.Attributes.Add("OnClick","alert("+ rad +")");
    }
</script>

<asp:Button ID="Button1" runat="server" Text="Diameter" 
            style="z-index: 1; left: 133px; top: 181px; position: absolute" />
<asp:TextBox ID="TextBox1" Visible="True" Text="" runat="server" 
            AutoPostBack="true" 
            style="z-index: 1; left: 134px; top: 133px; position: absolute" ></asp:TextBox>

使用此帮助,希望它有用

答案 5 :(得分:0)

        

        <script type="text/javascript">
            function MyFunction() {
                var FNumber = Number(document.getElementById('txtFirstNumber').value);
                var SNumber = Number(document.getElementById("txtSecondNumber").value);
                var Sum = FNumber + SNumber;
                alert(Sum);
            }

        </script>

        <table class="auto-style1">
            <tr>
                <td>FirstNaumber</td>
                <td>
                    <asp:TextBox ID="txtFirstNumber" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>SecondNumber</td>
                <td>
                    <asp:TextBox ID="txtSecondNumber" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>&nbsp;</td>
                <td>
                    <asp:TextBox ID="txtSum" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>&nbsp;</td>
                <td>
                    <asp:Button ID="BtnSubmit" runat="server" Text="Submit" OnClientClick="MyFunction()" />
                </td>
            </tr>
        </table>
    </div>
</form>