如果等用户输入完后,点击某个button按钮去验证的话比较好做,只要把textBox的值强转成double,用try chatch去验证就可以。但是我现在想在用户输入的过程中去给出提示,想到了用_TextChanged事件,逐个字符去验证,
但这样在_TextChanged事件事件中强转成double显然是不行的(比如用户输入个负号,这时候强转double会报错,实际上用户还没有输入完整...)求高手支招!!!
但这样在_TextChanged事件事件中强转成double显然是不行的(比如用户输入个负号,这时候强转double会报错,实际上用户还没有输入完整...)求高手支招!!!
解决方案 »
- vs2008打包成setup.exe,安装运行.NET报错,求解决
- 稍微有点想不通的拆箱问题,代码如下,求大虾赐教:
- Winfrom 自定义控件的双击事件及控件便利
- 请问这种xml要怎么取数据
- System.Threading.Thread.Sleep(i);这句话是什么意思 ?
- SetComputerNameEx 修改计算机名后登陆到联创
- datetimepicker设置格式为五分钟的倍数,而且上下改变时间的时候可以以五分钟为间隔跳动
- 怎么根据email来确定邮件服务器?
- 模式窗体和无模式窗体
- 网址编码问题
- 求助,关于connectionstring的头疼问题。
- C# 静态函数和非静态函数哪个效率高
onKeyPress="if (event.keyCode < 45 || event.keyCode > 57) event.returnValue = false;"这样就可以限制输入的只能是数字了!
{
textBox2.Text = textBox2.Text.Substring(0, textBox2.Text.Length - 1);
}
<input type="text" onchange="textChange(this)" /><div id="msg" style="color:Red;"></div>
<script type="text/javascript">
function textChange(txt) {
var reg = /^-?(\d{1}|[1-9]{1}\d+)(\.{1}\d*[1-9]{1}|)$/
var s = reg.test(txt);
if (!reg.test(txt.value)) {
document.getElementById("msg").innerHTML = "输入数字非法";
}
else {
document.getElementById("msg").innerHTML = "";
}
}
</script>
表达式 ^[-+]?\d+(\.\d+)?$
描述 匹配实数
匹配的例子 18,+3.14,-9.90 方案二:订阅Leave事件而不是TextChanged,也就是在输入框失去焦点的时候触发事件。
function Numbers(e){
var keynum
var keychar
var numcheckif(window.event){ // IE
keynum = e.keyCode
}else if(e.which){ // Netscape/Firefox/Opera
keynum = e.which
}
keychar = String.fromCharCode(keynum)
numcheck = /\d/
return numcheck.test(keychar)
}
<input type="text" id="phoneid1" onkeypress="return Numbers(event)" maxlength="11" name="restaurant.restaurantsPhone1" value="${restaurant.restaurantsPhone1 }" />
OnKeyPress="if(((event.keyCode>=48)&&(event.keyCode <=57))||(event.keyCode==46)) {event.returnValue=true;} else{event.returnValue=false;}" >
</asp:TextBox>
如果是你可以用js实现 去百度下很多 很好时间 我这有源码呵呵 QQ453367672如果是winform的话 LZ可以用文本框键盘按下时间来判断撒
我这里给楼主推荐使用Dev 控件textEdit,不用写一行代码,只须设置Editmask属性即可!
楼主不妨试试
{
textBox2.Text = textBox2.Text.Substring(0, textBox2.Text.Length - 1);
textBox2.SelectionStart = textBox2.Text.Length;
}把这个放在leave事件里,因为changed事件检查单个字符输入,输入负号时,你不能检查是否有数字,但是不检查又会导致只有符号存在,只有leave。当焦点离开的时候检查
private void txtTest_KeyPress(object sender, KeyPressEventArgs e)
{
if ((e.KeyChar < '0' || e.KeyChar > '9') && (e.KeyChar != '-' || txtTest.SelectionStart != 0) && (e.KeyChar != '.' || txtTest.Text.Contains('.'))
&& e.KeyChar != '\x8' && e.KeyChar != '\n')
e.KeyChar = '\0';
}