在Javascript中获取Textbox值

Shi*_*lal 7 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>
Run Code Online (Sandbox Code Playgroud)

那我哪里错了?如何在javascript中的文本框中输入文本???

小智 15

使用

document.getElementById('<%= txt_model_code.ClientID %>')
Run Code Online (Sandbox Code Playgroud)

代替

document.getElementById('txt_model_code')`
Run Code Online (Sandbox Code Playgroud)

你也可以用onClientClick而不是onClick.


Sea*_*lor 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


Muh*_*tar 5

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

var TestVar = document.getElementById('<%= txt_model_code.ClientID %>').value;
Run Code Online (Sandbox Code Playgroud)

Javascript 在客户端运行,要获取值,您必须提供控件的客户端 ID