window.DateFormat = function(){var __DateFormat = this;this.$A = function(el){return (typeof el == 'object')?el:document.getElementsByTagName(el);};this.$G = function(){var O = this.$A("input") ,Ret = new Array() ,j = 0;if(typeof O.length != "undefined"){for(var i=0;i<O.length;i++){if(O[i].type == "text"){Ret[j] = O[i];this.$R(O[i]);j++;}}}return Ret;};this.$R = function(O){O.onpropertychange = function(){if(this.value != ""){__DateFormat.$C(this ,this.value ,this.DateFormat);}};};this.$C = function(O ,str ,style){var __str = str.replace(new RegExp(style ,"g") ,"");if(str.substr(str.length-1 ,1) != style){if(isNaN(__str*1)){O.value = str.substr(0 ,str.length-1);}}if(str.length > 10){O.value = str.substr(0 ,str.length-1);}var YY = new Date().getFullYear();var arr = O.value.split(style);if(arr.length == 2){var dt = new Date(YY ,arr[0] ,arr[1]);if(dt != "NaN"){O.value = YY + style + str;}}};this.$G();};

解决方案 »

  1.   

    1.先用 split 分割后 ,如果长度不为3则,提示日期错误 
    2.若分割后的每个元素不为数字则,提示日期错误
    3.比较大小转换成 Date 型的直接比较
      

  2.   

    <body>
    <div id="c">
    <form action="www.163.com" onsubmit="return a();">
    <input id="txt_BeginYear" type="text" onblur="inValidYear(this)" /> 
    <input id="txt_EndYear"  type="text"  onblur="inValidYear(this)"/> 
    <input type="submit">
    </form>
    </div></body>
    <script>
    function inValidYear(element){
    var sTest=/(?:(?:1[8-9]|[2][0-9])\d{2})|(?:3000)/;
    if(!sTest.test(element.value)){
    element.focus();
    element.select();
    }
    }
    function a(){
    var BY=document.getElementById("txt_BeginYear");
    var EY=document.getElementById("txt_EndYear");
    if(BY.value>EY.value){
    EY.focus();
    EY.select();
    return false;
    }
    }</script> 
      

  3.   

    <body> 
    <div id="c"> 
    <form action="" onsubmit="return a();"> 
    <input id="txt_BeginYear" type="text">  
    <input id="txt_EndYear"  type="text">  
    <input type="submit"> 
    </form> 
    </div> </body> 
    <script> 
    function a(){ 
    var BY=document.getElementById("txt_BeginYear"); 
    var EY=document.getElementById("txt_EndYear"); 
    var sTest=/(?:(?:1[8-9] ¦[2][0-9])\d{2}) ¦(?:3000)/; 
    if(!sTest.test(BY.value)){ 
    BY.focus(); 
    BY.select(); 
    return false;

    if(!sTest.test(EY.value)){ 
    EY.focus(); 
    EY.select(); 
    return false;

    if(BY.value>EY.value){ 
    EY.focus(); 
    EY.select(); 
    return false; 

    return true;
    } </script> 
      

  4.   

    我把input改为可以服务器端运行了   
    runat="server"如果不是服务器端运行的话怎么在后台取出textbox里的值?
      

  5.   

    还是有点问题
    我的QQ:9994106
    能不能加我QQ?