我试图在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 ???
中的文本框中输入文本答案 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> </td>
<td>
<asp:TextBox ID="txtSum" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td> </td>
<td>
<asp:Button ID="BtnSubmit" runat="server" Text="Submit" OnClientClick="MyFunction()" />
</td>
</tr>
</table>
</div>
</form>