2011-02-18 176 views
6

我试图在javascript中获取文本框的值,但它不工作。下面给出我的测试页的代码在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

做到这一点的客户ID值:'VAR的testvar =的document.getElementById('<% = txt_model_code.ClientID%>')。value;` – deostroll 2011-02-18 09:25:11

+0

@deostroll谢谢它的工作..现在该怎么做,如果我想在另一个文本框中显示该值 – Shijilal 2011-02-18 09:42:50

+2

document.getElementById('<%= anothertextboxid.ClientID%>') .value = TestVar – Nirmal 2011-02-18 09:48:17

回答

15

使用

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

,而不是您也可以使用onClientClick而不是onClick

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> 

采用的这种帮助,希望这将是有用的

1

你想的ID是一个服务器端。

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

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

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

这可能有效。

或者做那个ClientID方法。这也可以,但最终浏览器会得到我写的东西。的

document.getElementById('txt_model_code')` 

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.aspx1

2

既然你有母版页和你的控制是在内容占位符,您的控件的ID,将产生在客户端不同。你需要这样做...

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

的Javascript运行在客户端,并获得您需要提供您的控制

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> 
相关问题