`
volunteer521
  • 浏览: 206331 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

TextBox控件Password模式下,触发服务器端事件后,自动清空显示值问题

    博客分类:
  • C#
阅读更多

背景说明:

在一个项目中,测试人员曾反映,一个注册页面,当提交注册的时候,提示必填项不能为空,于是根据提示填上所需信息,结果总是提示“密码、确认密码不能空”!密码早就填啦,怎么还报错?!如此反复,该同事恼火了,要开发人员马上解决这个Bug!!不然后面的功能没法测试。

 

问题分析:

1、其实,该注册页面,除了用户名、密码外,还有不少必填项,需要滚动条才能看到底部的提交按钮。

2、提交前会进行验证,包括客户端和服务器端验证。客户端采用JS统一进行非空验证;服务器端采用验证控件进行正则验证,例如格式、长度、范围等。

3、若必填项为空,则客户端JS只弹一次窗口,统一提示哪些项不能为空。(服务器端则不验证,减轻负担)

4、由于该注册页面基本上采用了Web控件,于是问题来了。当前端JS弹出提示信息后,TextBox控件,在Password模式下(TextMode="password"),会自动清空显示值。

5、结果,就出现文章开头的情况了。

 

解决方案:

一开始,没想到简洁的解决法,用JS把密码先保存在隐藏字段再赋值吧,还是不行。

网上搜好久,遇到类似问题的童鞋还真不少,就是没有有效的解决方案。但有个童鞋则自己想出了解决方法,赞一个!

(原文见:http://heiyelidexingxing.blog.163.com/blog/static/3157821120086153610519/

 

 关键代码如下:

//说明:TextBox1.Attributes["value"]="123456789";可给TextBox赋值。

//在TextBox的OnTextChanged事件中,添加

this.TextBox1.Attributes["value"] = this.TextBox1.Text;

//或

this.TextBox1.Attributes["value"] = Request.Form[TextBox1.ClientID];

//即可。

//为稳妥起见,设置onpaste="return false" oncut="return false" 让TextBox不可以粘贴、复制。

  

分享到:
评论

相关推荐

    C#实现在TextBox控件中实时显示Log

    以上就是如何在C#中使用事件和委托在TextBox控件中实时显示日志的基本步骤。实际应用中,你可能还需要考虑线程安全问题,特别是当日志更新发生在非UI线程时。在这种情况下,可以使用`Control.BeginInvoke`或`Control...

    C# TextBox 控件透明

    综上所述,实现C#中的TextBox控件透明主要涉及Windows Forms和WPF两种框架下的不同实现方式。虽然Windows Forms实现起来相对复杂,但通过自定义控件和处理父容器的Paint事件,也可以实现类似的效果。而在WPF中,由于...

    textbox控件使用方法

    在Windows Forms开发中,TextBox控件是不可或缺的一部分,它用于接收和显示文本输入。下面将详细介绍TextBox控件的使用方法,以及如何遍历WinForm页面中的TextBox控件,并实现一些基本的功能,如设置文本、限制输入...

    textbox控件使用详解

    TextBox 控件是 Winform 中最基本和最常用的控件之一,用于显示文本或输入文本。下面是 TextBox 控件的主要属性和使用方法: 1. Text 属性:该属性是 TextBox 控件最重要的属性,用来显示文本框中的文本内容。可以...

    C#清空界面控件值技巧

    C# 清空界面控件值技巧 C# 清空界面控件值技巧是指在 WinForm 应用程序中,清空界面控件值的方法。这种技巧可以重用,不需要每个窗体都编写枯燥、无聊的代码。下面我们将详细介绍这种技巧。 清空界面控件值的需求 ...

    C#Winform透明Textbox控件

    在本文中,我们将深入探讨如何在C# Winform应用程序中创建一个背景透明的TextBox控件。这个主题主要涉及C#编程语言,Windows Forms(Winform)框架,以及自定义控件开发。 首先,"C#Winform透明Textbox控件"指的是...

    Textbox验证控件

    4. **CompareValidator控件**:此控件可比较TextBox输入值与其他控件的值,或者与固定值进行比较,确保输入符合预期范围,如年龄、日期等。 5. **RequiredFieldValidator控件**:确保TextBox字段非空,如果用户未...

    js获取asp.net服务器端控件Label,TextBox,RadioButtonList,DropDownList的值

    ### js获取ASP.NET服务器端控件Label,TextBox,RadioButtonList,DropDownList的值 在Web开发中,JavaScript经常被用来增强用户体验,实现页面的动态效果。对于基于ASP.NET的项目而言,开发者通常需要通过JavaScript...

    IP模式的TextBox控件

    IP模式的TextBox控件通过添加额外的逻辑来解决这个问题。首先,它会实时监控用户的输入,当用户输入一个数字后,会自动跳转到下一个字段,这样可以确保IP地址始终按照四段八位的形式输入。其次,它会检查每个字段的...

    asp.net 密码形式的TextBox控件源码

    ASP.NET 是微软开发的一种用于构建Web应用程序的框架,它提供了丰富的服务器控件,方便开发者创建交互式的网页。在ASP.NET中,TextBox控件是用于用户输入文本的基本元素,但有时我们需要用户输入敏感信息,如密码,...

    textbox 回车执行事件

    默认情况下,TextBox控件的回车键可能不会触发任何服务器端事件,因为浏览器通常会将回车键视为表单的提交按钮。为了在回车键被按下时执行服务器端代码,我们需要进行一些额外的配置。 1. **添加服务器端事件**:在...

    延迟了TextChanged事件的TextBox文本框控件C#源代码

    为了解决这个问题,我们可以实现一个延迟触发TextChanged事件的TextBox控件。 在标题和描述中提到的"延迟了TextChanged事件的TextBox文本框控件"是指一种优化策略,它不会在每次用户输入时立即触发事件,而是等待...

    winform下TextBox只显示一条直线自定义控件源码

    在标题“winform下TextBox只显示一条直线自定义控件源码”中,提到的是一个特殊的TextBox控件,它仅显示一条直线,而非常规的矩形边框。这通常是为了追求更简洁、现代的UI设计。以下将详细解析这个自定义控件的设计...

    动态生成textbox控件

    本篇文章将深入探讨如何在C#中实现动态生成TextBox控件,并实现它们的自动排列。 首先,我们要理解动态生成控件的基本概念。在.NET Framework的Windows Forms环境中,我们可以通过编程方式创建控件,而不是在设计...

    C#控件中失去焦点Focus事件与获得焦点Focus事件

    在TextBox中,"GotFocus"事件可用于初始化某些状态,比如高亮选中所有文本,或者显示提示信息。 以下是使用这两个事件的基本示例代码: ```csharp // 对于TextBox控件,假设名为textBox1 textBox1.LostFocus += ...

    超强的TextBox控件

    5. **事件处理**:TextBox控件有多个事件可供编程者利用,如`TextChanged`事件(文本内容改变时触发)、`KeyDown`和`KeyUp`事件(键盘按键按下和释放时触发)、`LostFocus`事件(TextBox失去焦点时触发)等,这些...

    asp.net 能自动选中文本的TextBox控件源码

    1. **服务器端代码**:在服务器端,可能需要在TextBox控件加载时设置一个特定的属性,比如`AutoSelectText`(假设这是一个自定义属性),以便客户端知道应该进行自动选择。 2. **客户端脚本**:在页面的HTML输出中...

    LabelTextbox复合控件

    LabelTextbox复合控件是一种在软件开发中常见的自定义组件,特别是在UI设计中,它结合了Label和TextBox两种基本控件的功能。Label通常用于显示固定文本,而TextBox则用于用户输入文本。通过将这两种控件组合成一个...

    Textbox控件注册回车事件及触发按钮提交事件具体实现

    引子: 在ASP.Net页面中textbox的index为1(或n),其后的提交按钮index为2(n+1),光标在textbox中,回车后自动焦点移动到后面的button上,会触发button的点击事件。 但在Lyncplus客户端中访问Web页面时遇到了TextBox...

    Asp.net的TextBox回车触发事件

    另一种方式是在服务器端的`PageLoad`事件中,通过设置`TextBox`控件的`Attributes`来添加客户端脚本,如下所示: ```html function EnterTextBox(button) { if (event.keyCode == 13 && document.all["TextBox1...

Global site tag (gtag.js) - Google Analytics