asp.net验证控件会自动验证吗?

来源:百度知道 编辑:UC知道 时间:2024/05/24 09:32:43
新手学习asp.net,我自己动手做练习,用requiredfieldvalidator和comparevalidator,如:<asp:TextBox ID="textbox1" runat ="server" /><asp:RequiredFieldValidator ID="rfv1" runat ="server" ControlToValidate ="textbox1" Display ="Dynamic" ErrorMessage ="不能为空1" /><br/><asp:TextBox ID="textbox2" runat ="server" /><asp:RequiredFieldValidator ID="rfv2" runat ="server" ControlToValidate ="textbox2" Display ="Dynamic" ErrorMessage ="不能为空2"/><br/>
当我在textbox1中输入一个数字再把他删除,并转移输入焦点到别的控件。他自动检验出没有输入,输出错误信息“不能为空1”.。是他提交到服务器端自动验证了吗??(获得焦点的控件的causevalidation=false)还有comparevalidator也是这样,输入的两个数字不相同,转移焦点后也输出错误信息,而我没有点击提交按钮或其他causevalidation=true的控件。。
既然是自动验证的,为什么我点击控件但不输入,再转移焦点时他不验证,而我输入后再删除再转移焦点才验证呢??还有,是不是验证不通过,页面就不提交给服务器呢

呵呵,现在给你说明一下你所遇到的误区
1.asp.net里面所有的空间已经自动完成了验证,所谓的验证,更深一步说的是,每次刷新网页请求的时候是自动完成了一个比如向视图状态的一个状态管理。
2.你写的验证纯粹是一个javascript的脚本验证,他的基本原理不是向控件一样每次刷新一次都向服务器发一次请求,而是在客户端的验证。这个验证比向服务器发送验证再返回到客户端(即浏览器)更快也更方便。
总之,脚本只有你在关注焦点以后失去焦点才会经过验证,一个验证过程是你控制的某个控件。要了解asp.net技术与javascript完全是两个不同的概念。

验证控件都是自动验证的~包括非空~正则表达式~是否一致~大小等,这些都是在绑定的控件失去焦点的时候,验证控件自动验证的~

会的,在同一事件里面它会这样的了。一般节约空间大部份都使用这样写。

验证控件:你只要是设置选择的内容和匹配的内容正确了,就是自动调用的,不要写代码的,你只要在属性栏中的内容选择正确了就OK了!

没有转到服务器处理,是在客户端调用了javscript函数进行验证的。验证的条件是当鼠标的焦点离开文本输入框。而你点击提交按钮是提交服务器处理。也就是说验证是在客户端处理,提交是交给服务器处理。但是如果是asp.net 里的ajax控件那就要令当别论了。自己慢慢学吧

会 能手写就手写,尽量不要用,当你真正做网站的时候 你会发现空间商基本都不支持。