`
胡火云
  • 浏览: 45876 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

利用javascript获取Asp.net网页控件并检验网页输入的简单办法

 
阅读更多

利用javascript获取Asp.net网页控件并检验网页输入的简单办法(从服务器获取客户端ID)收藏
今天十分想通过javascript检验asp.net输入合法性,采用原来在Form年代的办法document.getElementById("textBox").value就会报错,而且document.getElementById("textBox")获取的是Null,说明这个办法在.net中采取WebForms时获取不到控件id,找了很长时间材料,终于知道所以和解决办法。

原因所在:

据个例子,一个TextBox控件,在服务器端的ID是txtUserName,但是最终在客户端生成的ID可能是LoginForm_txtUserName,因为它被放在一个ID为LoginForm的NamingContainer中。为了使组件内部的服务器控件最终生成的客户端ID能够在页面上唯一,WebForms引入了NamingContainer这个概念。在NamingContainer中的服务器端控件最终在客户端生成的ID,会使用NamingContainer的“客户端ID”作为前缀。如此“递归”的做法保证了服务器控件在客户端的ID唯一。

  Web 2.0在业界风卷残云般的势头至今还未停歇,与其有密切相关的AJAX技术也被广泛使用。AJAX技术从根本上讲,是一种在浏览器中使用JavaScript实现的技术,因此使用JavaScript操作DOM元素的情况非常多见。在非WebForms的页面中我们可以编写如下的代码:

<input type="text" id="textBox" />

<script language="javascript" type="text/javascript">
document.getElementById("textBox").value = "Hello World!";
</script>

  但是由于NamingContainer的缘故,我们在使用WebForms的服务器端的控件时就可能无法通过textBox在客户端获得文本框(生成的<input />元素)。为了解决这个问题,服务器端的控件模型提供了一个ClientID属性,通过这个属性,我们就可以在服务器端得到控件最终在客户端的ID。例如,如果上面的代码放在一个用户控件里的话,就一定必须写成如下形式:

<%@ Control Language="C#" AutoEventWireup="true" %>

<asp:TextBox runat="server" ID="textBox" />

<script language="javascript" type="text/javascript">
document.getElementById("<%= this.textBox.ClientID %>").value = "Hello World!";
</script>

  此时,当控件被放到页面上之后,它在客户端生成的代码则会是:

<input name="DemoControl1$textBox" type="text" id="DemoControl1_textBox" />

<script language="javascript" type="text/javascript">
document.getElementById("DemoControl1_textBox").value = "Hello World"!;
</script>

  请注意<input />元素的name和id,它们都留下了NamingContainer的痕迹。由于我们在页面上使用了<%= %>标记直接输出了服务器控件的ID,这样在客户端的JavaScript代码也就可以正确访问到服务器端<asp:TextBox />对应的客户端<input />元素了。

检验录入解决办法:

实例代码如下:
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<script language="javascript" type="text/javascript">
function CheckSchEnter()
{
var obj=document.getElementById("<%=this.tValue.ClientID%>");
if(obj.value==""){
alert("请输入查询关键字");
obj.focus();
return false;
}
else{
return true;
}
}
</script>
<form id="form1" runat="server">
<div>
搜索:关键字<asp:TextBox ID="tValue" runat="server"></asp:TextBox>
<asp:Button ID="btnSearch" runat="server" Height="25px" Text="搜索" OnClientClick="return CheckSchEnter()" onclick="btnSearch_Click" />
<div>
</form>

分享到:
评论

相关推荐

    ASP.NET提示控件,.net网页提示控件

    ASP.NET提示控件是.NET Framework下用于增强用户体验的重要组件,主要在Web应用程序中提供实时反馈,帮助用户在输入数据时即时验证其准确性。这些控件通常以非侵入性的方式集成到网页中,以优雅的形式向用户显示错误...

    asp.net页面输入控件屏蔽特殊字符键盘输入

    ### ASP.NET 页面输入控件屏蔽特殊字符键盘输入 在ASP.NET Web应用程序开发中,确保用户输入数据的安全性和合法性是一项至关重要的任务。不合理的用户输入可能会导致各种安全问题,如SQL注入、XSS攻击等。因此,在...

    ASP.NET AJAX控件之AlwaysVisibleControlExtender.rar

    ASP.NET AJAX(Asynchronous JavaScript and XML)是一种微软提供的技术,用于构建富客户端Web应用程序,它扩展了传统的ASP.NET,引入了异步交互和更流畅的用户体验。AlwaysVisibleControlExtender是ASP.NET AJAX ...

    简单网页聊天室(ASP.NET)

    【简单网页聊天室(ASP.NET)】是一种基于ASP.NET技术构建的在线实时交流平台,它允许用户通过浏览器进行即时通信。这种聊天室的核心特点是利用了ASP.NET中的Timer控件和Application对象来实现消息的实时更新和全局...

    ASP.NET自动检测用户名是否注册

    综上所述,实现ASP.NET的用户名自动检测功能需要结合客户端的JavaScript和服务器端的ASP.NET代码,利用AJAX进行异步通信。这一过程涉及到前端交互设计、后端业务逻辑处理和数据库操作等多个环节,是Web开发中常见的...

    ASP.NET贪食蛇游戏

    这款游戏利用了.NET框架的强大功能和ASP.NET的网页交互特性,使得用户可以在网页上直接进行游戏,无需安装任何客户端软件。 首先,我们要理解ASP.NET的核心概念。ASP.NET是微软开发的一种服务器端Web应用程序框架,...

    ASP.NET AJAX检查用户名是否存在的小例子

    ASP.NET AJAX(Asynchronous JavaScript and XML)是一种技术框架,它扩展了Microsoft的ASP.NET平台,引入了无刷新的用户体验,使得网页可以进行部分更新而无需重新加载整个页面。这种技术提高了Web应用程序的交互性...

    ASP.NET学习大全

    ASP.NET学习大全,包括以下文档: GridView导出excel 小山的TreeView数据绑定方法 ...用Asp.net实现简单的文字水印.txt 用ASP.Net写一个发送ICQ信息的程序.txt 在ASP.NET中使用Treeview控件和XML.txt

    ASP.net+Flash动态图片切换

    1. **ASP.NET控件**:在ASP.NET Web Forms中,我们可以使用像Image控件来显示图片,或者使用Repeater或DataList等控件来动态加载图片。这些控件能够处理用户交互并自动回发页面,非常适合于创建动态内容。 2. **...

    asp.net控制键盘keycode事件

    通过在ASP.NET页面中嵌入JavaScript代码,我们可以监听并处理键盘事件,利用`event.keyCode`获取按键的ASCII码,以此实现特定按键触发特定的功能。这不仅可以提高用户体验,也能增强Web应用的交互性。记住,虽然大...

    ASP.NET OCX ACTIVEX 控件 实例

    在本实例中,我们关注的是如何在ASP.NET中使用OCX(ActiveX)控件,这是一种在早期Windows编程中广泛使用的组件技术,主要用于创建交互式用户界面。 ActiveX控件是基于COM(Component Object Model)的,它允许...

    ASP.NET常用的JS代码

    7. **AjaxControlToolkit**:ASP.NET Ajax Control Toolkit提供了许多预封装的UI控件和特效,这些控件通常依赖于JavaScript库来实现客户端功能,如Accordion、DatePicker等。 8. **客户端脚本与服务器端代码交互**...

    asp.net学习大全(超全面的资料整合)

    包含内容部分示例: GridView导出excel 小山的TreeView数据绑定方法 ADO.NET在开发中的部分使用方法和...用Asp.net实现简单的文字水印.txt 用ASP.Net写一个发送ICQ信息的程序.txt 在ASP.NET中使用Treeview控件和XML.txt

    ASP.NET AJAX深入浅出系列课程(27):AJAX Control Tookit工具包(中)

    ASP.NET AJAX Control Toolkit是微软为ASP.NET开发人员提供的一套强大的AJAX扩展控件集合,它使得在Web应用中实现富交互性和异步更新变得更加容易。在这个深入浅出的系列课程中,我们将聚焦于AJAX Control Toolkit的...

    ASP程序设计_asp.net_

    ASP.NET开发者需要掌握如何在服务器端和客户端之间传递数据,以及如何使用JavaScript和CSS来实现动画效果。 5. **浏览器测试组件**:在多浏览器环境下确保应用程序兼容性是一项挑战。ASP.NET提供了多种工具和策略,...

    Asp.Net程序设计教程与实训(C#语言版)

    数据控件是用于显示和操作数据集的ASP.NET控件,如GridView、Repeater、DetailsView等。这些控件可以自动绑定到数据源,并提供排序、分页、编辑和删除等操作,极大地简化了数据展示和交互的实现过程。通过数据控件,...

    asp.net简单的验证控件

    ASP.NET 的验证控件提供了一种方便的方式来验证用户在网页上提交的数据。这些控件能够自动检测输入是否符合预设的规则,如非空检查、长度限制、电子邮件格式等。这有助于防止恶意用户提交无效数据,同时也能减少...

    asp.net在线报名系统

    这些页面通常会用到ASP.NET控件,如文本框、按钮和验证控件,以便收集和验证用户数据。 JavaScript则在这个系统中扮演了关键角色,它负责在用户交互时进行实时的数据验证。例如,当用户填写报名表单时,JavaScript...

    如何使用ASP.NET Mobile Controls开发Mobile Web应用

    ASP.NET Mobile Controls是微软提供的一套专门用于构建移动Web应用程序的工具集,它允许开发者使用ASP.NET技术来创建适应各种移动设备的网页。在本文中,我们将深入探讨如何利用ASP.NET Mobile Controls进行移动Web...

Global site tag (gtag.js) - Google Analytics