asp.net js获取控件ID

以文本框为例:

一、未使用母版页

js可以使用document.getElementById(‘控件的ID‘)形式,也可以使用document.getElementById(‘<%=控件的ID.ClientID %>‘)的形式,代码如下:

 1 <head runat="server">
 2     <title></title>
 3     <script type="text/javascript">
 4         function change() {
 5             var control = document.getElementById(‘TextBox1‘);
 6             //或者是下面的方式
 7             //var control = document.getElementById(‘<%=TextBox1.ClientID %>‘);
 8             if (control.value != "") {
 9                 alert("输入的文本:" + control.value);
10             }
11         }
12     </script>
13 </head>
14 <body>
15     <form id="form1" runat="server">
16     <div>
17         <asp:TextBox ID="TextBox1" runat="server" onblur="change()"></asp:TextBox>
18     </div>
19     </form>
20 </body>

如果是HTML <input>标签,取得id的方式和服务器控件取得ID的方式一样,代码如下:

 1 <head runat="server">
 2     <title></title>
 3     <script type="text/javascript">
 4         function change() {
 5             var control = document.getElementById(‘Text1‘);
 6             if (control.value != "") {
 7                 alert("输入的文本:" + control.value);
 8             }
 9         }
10     </script>
11 </head>
12 <body>
13     <form id="form1" runat="server">
14     <div>
15         <input id="Text1" type="text" onblur="change()" />
16     </div>
17     </form>
18 </body>

注意:使用HTML <input>标签,想在后台取得其Value值(string text = this.Text1.Value;),或者在js用document.getElementById(‘<%=Text1.ClientID %>‘);的形式获取控件id,需要变为服务器控件,加上runat="server",即<input id="Text1" type="text" runat="server" onblur="change()">即可,当然,即使加上runat="server",js也可以使用document.getElementById(‘Text1‘);获取其id。

二、使用母版页

①对于标准服务器控件,如<asp:TextBox>,js获取其控件ID必须使用document.getElementById(‘<%=TextBox1.ClientID %>‘);获取其ID,代码如下:

 1 <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
 2 <script type="text/javascript">
 3     function change() {
 4         //var control = document.getElementById(‘TextBox1‘);//找不到TextBox1对象
 5         var control = document.getElementById(‘TextBox1.ClientID‘);
 6         if (control.value != "") {
 7             alert("文本为:" + control.value);
 8         }
 9     }
10 </script>
11 </asp:Content>
12 <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
13     <asp:TextBox ID="TextBox1" runat="server" onblur="change()"></asp:TextBox>
14 </asp:Content>

如果使用document.getElementById(‘TextBox1‘);会出现如下错误:

②对于HTML <input>标签,如果作为服务器控件,即有runat="server",js获取其id使用document.getElementById(‘<%=Text1.ClientID %>‘);,如果不作为服务器控件,使用document.getElementById(‘Text1‘);获取其id。否则也会出现上图的错误,代码如下:

 1 <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
 2 <script type="text/javascript">
 3     function change() {
 4         var control = document.getElementById(‘Text1.ClientID‘);//作为服务器控件获取其id
 5         //var control = document.getElementById(‘Tex2‘);//作为HTML <input>标签,获取其id
 6         if (control.value != "") {
 7             alert("文本为:" + control.value);
 8         }
 9     }
10 </script>
11 </asp:Content>
12 <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
13     <input id="Text1" type="text" runat="server" onblur="change()"/>
14     <%--<input id="Text2" type="text" onblur="change()"/>--%>
15 </asp:Content>

注:如果想在后台获取其文本值,必须将其作为服务器控件,即加上runat="server"

③对于服务器控件,如果在母版页body内的ContentPlaceHolder控件加上ClientIDMode="Static" 属性后,内容页中js获取服务器控件id就可以直接使用其ID名(不用使用<%=控件ID.ClientID %>),母版页代码如下:

 1 <head runat="server">
 2     <title></title>
 3     <asp:ContentPlaceHolder ID="head" runat="server">
 4     </asp:ContentPlaceHolder>
 5 </head>
 6 <body>
 7     <form id="form1" runat="server">
 8     <div>
 9         <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server" ClientIDMode="Static">
10
11         </asp:ContentPlaceHolder>
12     </div>
13     </form>
14 </body>

内容页代码如下:

 1 <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
 2 <script type="text/javascript">
 3     function change(id) {
 4         var control = document.getElementById(id);
 5         if (control.value != "") {
 6             alert("文本为:" + control.value);
 7         }
 8     }
 9 </script>
10 </asp:Content>
11 <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
12     <input id="Text1" type="text" runat="server" onblur="change(this.id)"/><br />
13     <asp:TextBox ID="TextBox1" runat="server" onblur="change(this.id)"></asp:TextBox>
14 </asp:Content>
时间: 2024-10-17 15:33:46

asp.net js获取控件ID的相关文章

ASP.NET在母版页或内容页上获取控件ID

原本想给一个button添加一个confirm,不同的分数提示不同的信息(大于80合格,小于80不合格,提示是否提交),最开始用了button.Atribute.Add();但是它每次获取到的是label控件在刷新前的值,后来在网上看到了ViewState[]的使用,但是还是不行,没办法,只能用js: <script> function myconfirm() { if(document.getElementById('lbl').value>=80) {return confirm('

Jquery如何获取控件ID

l  1.#id     用法: $(”#myDiv”);    返回值  单个元素的组成的集合 说明: 这个就是直接选择html中的id=”myDiv” l  2.Element       用法: $(”div”)     返回值  集合元素 说明: element的英文翻译过来是”元素”,所以element其实就是html已经定义的标签元素,例如 div, input, a 等等. l  3.class          用法: $(”.myClass”)      返回值  集合元素 说

js 获取控件

①  document.getElementById("id").getElementsByTagName("input");    获取ID=‘id’控件所包含的所有标签为‘input’的子控件集合 ②  eval(document.getElementById("id")).value       获取ID='id‘的控件的值 ③ document.getElementById("id")               获取

页面JS获取不到控件ID

为了使页面更加的友好,我们不可避免的要在页面上使用JS,所以在页面上使用javascript获取控件ID是很常见的事情.但是最近在使用JS的使用,遇到了一件让我很头疼的事情,在获取控件ID时,抱错了,监控显示,获取不到控件ID. 源代码: <script type="text/javascript"> Function(){ var args = window.dialogArguments; var serverTaskInfo = $("#hidTaskInf

monkeyrunner之坐标或控件ID获取方法

Monkeyrunner的环境已经搭建完成,现在对Monkeyrunner做一个简介. Monkeyrunner工具提供了一套API让用户/测试人员来调用,调用这些api可以控制一个Android设备或模拟器,而不需要了解对应的源码. 有了Monkeyrunner,我们可以编写python脚本来控制apk包的安装和卸载.启动app.向app发送各种动作事件.截取图片并保存. 除此之外,MonkeyRunner是Google提供的一个基于坐标点的Android黑盒自动化测试工具.所以,要使用Mon

js获取页面容器中的控件id方法即遇到的问题

在实际开发过程中,我们会把一些控件放在容器中,这样生成出来的页面上容器中的控件id就会自动生成前缀+控件id,如果不注意就会导致js获取的时候出现错误. 通过网上查到的资料可以用document.getElementById("<%=btn.ClientID %>")来动态的获取容器中变动的控件id(btn是本来控件的id,btn.ClientID是变化之后的控件id). 但是如果把该代码放在<head runat="server">中执行,

在ASP.NET 的服务器端控件中有三种关于 ID 的属性

在ASP.NET 的服务器端控件中有三种关于 ID 的属性,即 ID, ClientID 和 UniqueID. ID 表示控件的服务器端编程的标识符,我们写"服务器端的代码",就要用到这个 ID, 通过这个 ID 可以在服务器端对服务器端控件的属性.方法和时间进行编程访问.(可写) ClientID 表示由服务器端生成的客户端控件的ID,"经常用于在客户端脚本中访问服务器控件所呈现的 HTML 元素".一般情况下与服务器端的 ID 相同,有时,不能为控件生成唯一的

ADF控件ID变化引发JS无法定位控件的解决方法

原文地址:ADF控件ID变化引发JS无法定位控件的解决方法作者:Nicholas JSFF定义的控件ID到了客户端时往往会改变.例如在JSFF中的一个的ID为"ot1",但是当这个JSFF被嵌入TaskFlow中,并以Region的方式在页面展示时,在浏览器中,此控件的ID就会变成"r1:0:ot1". ADF动态修改控件ID的原因其实是为了提供重用性的同时防止控件ID的冲突.试想如果有两个JSFF中分别都有一个,其ID均为ot1,那么当这两个JSFF被引入同一个页

Asp.Net 之 母版页中对控件ID的处理

一.问题提出 由于总体排版和设计的需要,我们往往创建母版页来实现整个网站的统一性,最近我由于统一性的需要,把原来整个项目单独的页面全部套用了母版页.但是出现了一系列失效错误. 二. 抽象模型 由于整个页面内容过多,所以我把这个页面中最为本质的问题抽象出来.原来单一页面,就是利用按钮触发JS事件,在文本域中插入“(_)”功能,其实现代码如下: <head id="Head1" runat="server"> <title>单一页面抽象模型-YJ