TextBox控件Password模式下,触发服务器端事件后,自动清空显示值问题
2010-12-02 14:38
211 查看
背景说明:
在一个项目中,测试人员曾反映,一个注册页面,当提交注册的时候,提示必填项不能为空,于是根据提示填上所需信息,结果总是提示“密码、确认密码不能空”!密码早就填啦,怎么还报错?!如此反复,该同事恼火了,要开发人员马上解决这个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不可以粘贴、复制。
阅读更多
相关文章推荐
- 关于FileUpload控件选择文件时触发显示图像事件在IE7以上版本中不显示的问题
- 关于ASPxGridView控件触发服务器端FocusedRowChanged事件的设置
- 客户端如何触发服务器端控件的事件
- VS2008 TreeView控件的TreeNodeCheckChanged事件自动回发到服务器端
- combox的change事件触发另一个combox下拉框显示数据清空
- 关于页面中回车键默认触发某个控件按钮事件的问题(DefaultButton)
- JavaScript触发asp.net服务器端控件事件
- TextBox回车后自动触发后面的按钮事件(C/S方法)
- 动态创建Pivot控件的PivotItem,LoadedPivotItem事件第一次不触发的问题
- 关于动态加载控件 事件触发的问题
- datalist控件输入中文时事件触发问题分析
- 关于.Net WinForm 中的控件失去焦点时触发事件的问题
- textbox回车后自动触发后面的按钮事件
- DropDownList控件_SelectedIndexChanged事件不能触发问题解决
- 关于PassWord模式下TextBox后台赋值的问题
- TextBox控件TextMode="Password"時,觸發服務器端事件后,會清空掉TextBox的顯示值
- 控件篇 - TextBox的GotFocus事件触发问题
- 【WPF开发备忘】使用MVVM模式开发中列表控件内的按钮事件无法触发解决方法
- android ListView 中点击事件与其他控件点击时间冲突问题与自动滚动
- 解决TextBox中, JS方法(DatePicker)改变Text内容后, 无法触发OnTextChanged事件的问题