如题一个文本框中输入  
月-日 后自动生成  当前年份-月-日如输入  07-15 则自动生成   2009-07-15如输入 2009-07-15 则不变
其中小于10的月和日 加不加 0 效果都一样如 07-01 和7-1都能生成2009-07-01

解决方案 »

  1.   

    不验证日期的准确性的话,简单的实现可以这样         function auto(obj){
                  var arr = obj.value.split("-");
                  if(arr.length==2){
                      var now = new Date();
                      var year = now.getFullYear();
                      obj.value = year + "-" + (arr[0].length==1?"0"+arr[0] : arr[0]) + "-" + (arr[1].length==1?"0"+arr[1] : arr[1]);
                  }else{
                     obj.value  = arr[0] + "-" + (arr[1].length==1?"0"+arr[1] : arr[1]) + "-" + (arr[2].length==1?"0"+arr[2] : arr[2]);
                  }
             } <input type="text" onblur="auto(this)">
      

  2.   


    <script>
    function doit(obj){
    var v = obj.value;
    var re = new RegExp("^(\\d|0\\d|1[0-2])-(\\d|[1-2]\\d|3[0-1])$");
    if(!re.test(v)) {alert("日期不对");return false;}
    v = (new Date()).getFullYear() + "-" + v;
    a = v.split("-");
    y = parseInt(a[0]);
    m = parseInt(a[1]);
    d = parseInt(a[2]);
    s = y + "-" + m + "-" + d;
    dt = new Date(y,m-1,d);
    y = dt.getFullYear();
    m = dt.getMonth()+1;
    d = dt.getDate();
    if(y + "-" + m + "-" + d != s){alert("日期不对");return false;}
    m = "0" + m;
    m = m.substr(m.length-2,2);
    d = "0" + d;
    d = d.substr(d.length-2,2);
    obj.value = y + "-" + m + "-" + d;
    }
    </script>
    <input type="text" onchange="doit(this)" value="7-">
      

  3.   

     
    fengylm
     
    (CHINA*范) 等 级: 
    结帖率:100.90% 
    楼主的结贴率都超过了100%,
    太神奇了
      

  4.   

    顶楼上的,CSDN出问题了,还有超过百分百的事啊,
      

  5.   

    下面是一个小示例, 没有对输入的日期的合法性进行效验,比如, 当输入 2-31 或 01-39 或 13-35 之类的都会进行转换<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>无标题页</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <script language="jscript" type="text/jscript"> 
        function autoCorrect(){
         var date = document.getElementById("date").value;
         if(new RegExp("^[0-1]?\\d-[0-3]?\\d$").test(date)){
         document.getElementById("date").value = new Date().getYear() + "-" + date;
         }
        } 
        </script>
    </head>
    <body>
    <input id="date" type="text" onblur="autoCorrect();" />
    </body>
    </html>