<asp:textbox id="txtHMark2" MaxLength="50" runat="server" Width="80" Text='<%# DataBinder.Eval(Container.DataItem, "HMark2") %>' />
<br/><asp:CompareValidator ID="valHMark2" runat="server" Operator="DataTypeCheck" Type="Date" ControlToValidate="txtHMark2" Display="dynamic">
             YYYY/MM/DD形式不正确</asp:CompareValidator>function H2_Change()
   {
       var groupnames=document.getElementsByTagName('input');
       var spans=document.getElementsByTagName('span');
       var groupname='';       
       for(var i=0; i<groupnames.length; i++)
       {
           if(groupnames[i].id.indexOf('txtHMark2') > 0)
           {
               groupname=groupnames[i].value;
               groupname=groupname.split("/");
               var dd2=new Date(groupname[0],groupname[1],groupname[2]);
               
                
               var currentDate=document.getElementById("labDate").value;//当前页面日期
               currentDate=currentDate.split("/");
               var dd1=new Date(currentDate[0],currentDate[1],currentDate[2]);
               
               
               
               if((dd2.getDate()-dd1.getDate())==1||(dd2.getDate()-dd1.getDate())==2||(dd2.getDate()-dd1.getDate())==3)
               {
                groupname=groupnames[i].value;
               }
               else
               {
                
               }
               
           }
       }
   }现在的问题是:能不能不在js里面写验证,直接在控件那个地方进行操作,实现:那个input里面输入的日期只能是当前,后1天,后2天,后3天,一旦不是这四个日期,就提示错误!如果只能在js里面写,又该如何写呢?我上面的js里面写的不是很正确,求指导!CompareValidator,日期

解决方案 »

  1.   

      JS 日期差判断
     
       function getDates( d ){
         if(typeof d=='string')d=d.match(/\d+/g),d=new Date(d[0],d[1]-1,d[2]);
         return parseInt(d/864E5);
       }
       var now=getDates(new Date());
       var v=getDates('2013-10-5')-now  //日差
       
       if(  v >0 && v<3 ){
           alert('ok')
       }else{
          alert('error')
       }