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.
这是因为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
由于您有母版页并且您的控件位于内容占位符中,因此您的控件 ID 将在客户端生成不同。你需要这样做...
var TestVar = document.getElementById('<%= txt_model_code.ClientID %>').value;
Run Code Online (Sandbox Code Playgroud)
Javascript 在客户端运行,要获取值,您必须提供控件的客户端 ID