利用javascript获取Asp.net网页控件并检验网页输入的简单办法(从服务器获取客户端ID)

ASP.NET客户端日历控件设计与实现 本文还有配套的精品资源,点击获取 简介:客户端日历控件是ASP.NET开发中的实用功能,允许用户通过直观的界面选择日期。本项目提供了一个完整的客户端日历控件实现,涵盖以下关键技术:ASP.NET控件、JavaScript/jQuery、CSS样式、服务器端代码和客户端脚本。开发者可以通过学习此项目,了解如何在自己的应用程序中创建类似的日期选择组件,提升用户体验。 ... 阅读详情

今天十分想通过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中Runat服务器属性与JavaScript的交互应用 在Web开发中,服务器控件是ASP.NET框架中的核心组件,它们能够在服务器端执行逻辑,并通过HTML标签表现出来。这些控件支持在服务器端声明性地编写事件处理代码,并在需要时与客户端脚本交互。ASP.NET框架为服务器控件自动分配ID,以保证服务器端代码可以引用这些控件。这个ID生成规则是基于控件所在的命名容器(NamingContainer)和控件在容器内的索引。为了确保ID的唯一性,ASP.NET会生成一个由容器名称、索引和随机生成的数字组成的ID字符串。 阅读详情

相关推荐

ASP.NET中JavaScript键盘事件处理实践

keyCode属性是JavaScript中与键盘事件相关的一个重要属性,它提供了关于按键的具体信息。当用户按下或释放键盘上的键时,与之相关的键盘事件(如keydownkeyup)会触发,并带有keyCode属性,该属性返回一个数字代码,代表被按下的键。通过上述章节,我们了解了如何实现和应用 JavaScript 函数。此函数是实现键盘事件处理的关键组件,通过分析其结构和应用实例,我们可以了解到函数可以灵活应用于不同场景中,实现对键盘事件的深度定制。

weixin_34620658的博客 738

asp.net js获取控件ID

以文本框为例: 一、未使用母版页 js可以使用document.getElementById('控件的ID')形式,也可以使用document.getElementById('<%=控件的ID.ClientID %>')的形式,代码如下: 1 <head runat="server"> 2 <title></title> ...

weixin_30405421的博客 473

ASP.NET网页空白与JavaScript alert问题解决方案详解

在大型ASP.NET项目中,JavaScript常分散在多个.js文件或<script>标签中,加载顺序不当极易导致“变量未定义”或“函数调用失败”。除了记录日志,更重要的是向用户返回有意义的反馈,而非一片空白。可通过配合重定向实现优雅降级:// 根据异常类型决定处理策略case 404:break;else// 非HTTP异常统一导向500页// 清除异常,防止继续传播在。

weixin_34163588的博客 1194

李约瑟难题:东西方科技史比较与文明发展路径反思

科技史研究中的核心议题之一,是探讨不同文明在科学知识积累和技术应用方面的差异与演变规律。从概念层面看,这涉及对科学革命发生条件、知识传播机制以及社会文化背景对技术创新影响的系统性分析。其原理在于通过比较史学方法,揭示不同文明体系在知识生产、应用和传承上的结构性特征。这一研究的技术价值在于打破单一文明中心论,为理解全球科技发展多元路径提供框架,对当代科技创新政策制定具有重要启示意义。应用场景广泛涵盖科技政策研究、跨文化交流、历史教育以及创新生态构建等领域。以李约瑟及其团队对《中国的科学与文明》的编纂为例,通过

weixin_33739541的博客 522

【YOLO 系列】基于YOLO V8的智能车载交通标志识别系统【python源码+Pyqt5界面+数据集+训练代码】

本文详细介绍了基于YOLO V8构建智能车载交通标志识别系统的完整流程。从环境搭建、数据集准备、模型训练到PyQt5图形界面开发,提供了Python源码和实战代码,帮助开发者快速实现高精度、实时的交通标志检测应用,提升驾驶辅助系统的开发效率。

wdx012345的博客 966

混合整数规划(MIP)在资源优化中的实战应用

本文深入探讨了混合整数规划(MIP)在资源优化中的实战应用,从菜市场采购到工厂调度,再到物流配送和钢铁厂切割问题。通过分支定界法和割平面法等技术,MIP能够有效解决包含整数和连续变量的复杂优化问题,提升企业运营效率。文章还介绍了现代求解器的优化策略和实际项目中的避坑指南,帮助读者更好地应用MIP技术。

weixin_30500105的博客 91

ajax获取asp返回值,Js获取asp页面返回的值(加载值)实现代码

Getting Server side data using AJAXfunction creat_Object() {var xmlhttp;if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {try {xmlhttp = new XMLHttpRequest();}catch (e) {alert("Your brows...

weixin_33308579的博客 383

【AI Agent 实战】OpenClaw 全面解析 + 全平台一键部署教程(本地 AI 智能体)

本文收录于 AI 智能体 & 自动化实战系列,手把手带你从零部署本地可控的 AI 执行助手关键词:OpenClaw、AI Agent、本地 AI 部署、自动化助手、Docker 部署

爱人爱己,风生水起 7888

客户端的JavaScript脚本中获取服务器端控件的值 及ID

ASP.NET拾萃——服务器端控件篇(一)技巧一:在客户端的JavaScript脚本中获取服务器端控件的值 以前,当我们需要在脚本里访问页面内一个对象的时候,一般都是通过对象的id或name。就像这样—— // ... function getText() {   return document.form1.Text1.value; // Text1就是对象的id } // ..

pughua的专栏 1194

华为OD机试双机位C卷-AI面板识别(Py/Java/C/C++/Js/Go)

华为OD机试双机位C卷 AI面板识别,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解以及在线OJ模拟做题。华为OD机试 - AI面板识别。

qq_45776114的博客 1343

Aip1640、TM1640驱动程序

本文介绍了AIP1640/TM1640驱动芯片的编程实现,主要包括硬件接口定义和通信协议函数。通过宏定义配置时钟(CLK)和数据线(DIO)的GPIO控制,实现了I2C协议的启动、停止、字节发送等基本操作。核心函数AIP1640_Disp_Drive()完成显示驱动流程:先发送0x40命令设置地址自增模式,再发送0xC0起始地址和16字节显示数据,最后设置亮度参数。文中还包含5微秒延时函数、显示数据缓冲区定义,以及LED和数码管(SMG)的位映射注释说明。该代码适用于控制LED数码管显示,支持亮度调节功能。

zqx的博客 1402

如何编写JavaScript脚本,在客户端获取或变更服务器端控件的值及ID

以前编写asp网页时,当我们需要在脚本里访问页面内一个对象的时候,一般都是通过对象的id或name。就像这样—— // ... function getText() {   return document.form1.Text1.value; // Text1就是对象的id } // ...  现在随着ASP.NET的发展,让我们越来越习惯使用服务器端控件TextBox作为用户

iloveyoubaby的专栏 2620

在 FlexSim 中建 AGV 小车模型时,如果设定“每次充电需要 2 小时才能充满”,应该如何配置 AGV 的充电功能?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值。

**My Coding Family** 881

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

利用javascript获取Asp.net网页控件并检验网页输入的简单办法(从服务器获取客户端ID)收藏 今天十分想通过javascript检验asp.net输入合法性,采用原来在Form年代的办法document.getElementById("textBox").value就会报错,而且document.getElementById("textBox")获取的是Null,说明这个办法在.ne

cpcpc的专栏 812

EMB电子机械制动执行器五大核心部件选型解析

本文介绍了EMB电子机械制动执行器五大核心部件的选型方案:采用无刷直流电机作为驱动源,兼具高扭矩和快速响应特性;选用滚珠丝杠传动机构,实现高效旋转-直线转换;行星齿轮减速器满足紧凑空间内的增扭需求;QT450-QT550材质的钳体确保刚度要求;应变片式压力传感器实现夹紧力精确测量。各部件选型综合考虑了性能、可靠性和空间限制,为EMB系统设计提供了完整解决方案。

m0_59012156的博客 1737

Python实战:打造学生信息管理系统

通过本教程,我们构建了一个简单的学生信息管理系统,实现了基本的添加、删除、修改和查询功能。当然,这个系统还有很多可以改进和扩展的地方,比如添加用户界面、增加数据持久化功能、支持批量操作等。简介:本文将介绍如何使用Python编写一个功能齐全的学生信息管理系统,包括添加、删除、修改和查询学生信息的基本操作。学生信息管理系统是学校日常管理中不可或缺的一部分,它能够帮助管理人员快速、准确地管理学生信息,提高工作效率。为了实现上述功能,我们可以设计一个包含学生信息的字典,并使用函数来封装各个操作。

铭渊老黄 1490

[转] 客户端的JavaScript脚本中获取服务器端控件的值 及ID

ASP.NET拾萃——服务器端控件篇(一) 技巧一:在客户端的JavaScript脚本中获取服务器端控件的值 以前,当我们需要在脚本里访问页面内一个对象的时候,一般都是通过对象的id或name。就像这样—— <!--Test.html--> // ... function getText() { return document.form1.Text...

weixin_30561425的博客 216

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

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

利用javascript获取Asp.net网页控件并检验网页输入的简单办法(从服务器获取客户端ID)收藏 今天十分想通过javascript检验asp.net输入合法性,采用原来在Form年代的办法document.getElementById("textBox").value就会报错,而且document.getElementById("textBox")获取的是Null,说明这个办法在.ne

huhuoyun的专栏 506

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

jQuery 如何获取ASP.NET服务器控件的值

由于ASP.NET网页运行后,服务器控件会随机生成客户端id,jquery获取时候不太好操作,总结有以下3种方法: 服务器控件代码:<asp:TextBox ID="txtUserID" runat="server"></asp:TextBox> 1. $("#<%=txtUserID.ClientID%>").val();2. $("input[...

axpf5763的博客 406

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

ASP.NET(四)-ASP.NET控件集合

ASP.NET控件 控件分类HTML控件和ASP.NET服务器控件HTML控件ASP.NET服务器控件常用服务器控件Label控件Literal控件TextBox控件HiddenFiled控件Button控件RadioButton控件HyperLink控件数据验证控件数据验证方式非空验证控件比较验证控件范围验证控件正则表达式验证控件自定义验证控件验证信息汇总控件ValidationSummary控...

-_^汪洸*的博客 1002

java服务器控件的值_客户端的JavaScript脚本中获取服务器端控件的值 及ID

ASP.NET拾萃——服务器端控件篇(一)技巧一:在客户端的JavaScript脚本中获取服务器端控件的值以前,当我们需要在脚本里访问页面内一个对象的时候,一般都是通过对象的id或name。就像这样——// ...function getText(){return document.form1.Text1.value; // Text1就是对象的id}// ...现在,ASP.NET让我们越来越习...

weixin_34558565的博客 202

ASP.NET服务器控件库中嵌入JavaScript脚本文件

       需求:建立一个类库TestControls,这个类库中包含若干ASP.NET服务器控件,其中有一些会调用客户端的JavaScript函数,把这些函数放入TestScript.js中。      下面演示一个例子,把上面的需求再简化一下,类库还是要建立的,里面只有一个服务器控件TestControl,这个控件没有界面,只负责把 JavaScript脚本注册到网页中即可,为了快速看到

boral_li的专栏 1180

ASP.net页面及控件

ASP.NET ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。 ASP.NET 支持三种不同的开发模式: Web Pages(Web 页面)、MVC(Model View Controller 模型-视图-控制器)、Web Forms(Web 窗体) 一、asp.net文件扩展名 经典 ASP 文件的文件扩展名为 .asp ASP.N...

羊啊的博客 1006
上一篇: ASP.NET 2.0构建动态导航的Web应用程序(TreeView和Menu )
下一篇: ASP.NET中的DataBinder.Eval用法
UniMagic
博客等级 码龄20年 24粉丝 40原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UniMagic

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值