用asp.net写的程序,本来Asp.net自身带有验证控件,但验证控件只在提交的时候验证,我想用JS实现在焦点离开文本框的时候验证
但在<asp:TextBox ID="txtUserID" runat="server" ></asp:TextBox> 控件中,没有Onblur事件,请问有方法实现吗?
还有为啥在<input type="text" />控件中有onblur事件,在Asp.net控件中就没有这个事件呢?

解决方案 »

  1.   

    asp.net控件又叫服务端控件。是有标记runat=“server”的,其实是微软对其本来的html标记进行了下自己的封装。发送到客户端都会解释成html标记,所以服务端控件支持普通html的所有事件。比如LZ说的那个。onblur就是光标离开事件。还有个人认为没必要使用asp.net控件,速度慢、效率低。没看到任何的好处。
      

  2.   

    这个功能客户端实现很容易,你用服务器控件是自找麻烦
    建议永远不用服务器控件,明显它让你连web的运行过程都搞不清楚了,
    服务器事件是虚假的,是你的错觉,是用http通讯模拟的,相当于客户端发生该事件时就向服务器发一个请求,让服务端执行相应函数,所以你会发现事件触发时除了事件函数还会执行page构造函数和load事件,每触发一次都要发http请求,效率之低就不用多说了;
    而且所谓服务器控件,最后页面呈现时也只是html标签,所以绝不会比html实现的功能多,只可能少,为了避免频繁通讯,绝大多数事件不提供服务端事件是正常的
    还有就是如果不是在vs环境下,那么这些服务器控件标签就都是非法的了,所以实在不敢恭维其维护性和扩展性以现在的水平来看,asp.net的服务器控件一无是处
    当然初学时用一下无可厚非,但越早摆脱越好;