<script language="javascript">
<!--
function checkform(){
re = /^\d{4}\-\d{2}\-\d{2}$/;
if(!re.test(form1.mydate.value)){
alert("错了,错了。");
form1.mydate.focus();
return false;
}
return true;
}function auto(){
if(form1.mydate.value.length == 4){
form1.mydate.value += "-";
}
if(form1.mydate.value.length == 7){
form1.mydate.value += "-";
}
}
//-->
</script>
<form name="form1" method="post" action="" onSubmit="return checkform();">
  <input name="mydate" type="text" id="mydate" onkeyup="auto()" maxlength="10">
  <input type="submit" name="Submit" value="提交">
</form>

解决方案 »

  1.   

    kingerq(多菜鸟):
    这种方法我用过,但是在删除一个字符后验证就乱了阿!
    请问一下如何处理这个问题,有没有简单一点的函数之类的东东!
    谢谢!
      

  2.   

    http://joe.2418.com/programme/html/timer.rar
    http://joe.2418.com/programme/html/timer/time.htm
    里面有代码,自己研究一下吧
      

  3.   

    比较完整的验证.<script language="JavaScript"> 
    <!-- 
    function isValidDate() 

    var dateStr = document.myForm.date.value; 
    var strErr=0; 
    var datename = new Date(); 
    var datePat = /^(\d{4})(\/|-)(\d{1,2})\2(\d{1,2}|\d{4})$/; 
    var matchArray = dateStr.match(datePat); 
    if (matchArray == null) 

    alert("Date is not in a valid format.") 
    strErr=1; 
    return false; 

    month = matchArray[3]; 
    day = matchArray[4]; 
    year = matchArray[1]; 
    if (month < 1 || month > 12) 

    alert("Month must be between 1 and 12."); 
    strErr=1; 
    return false; 

    if (day < 1 || day > 31) 

    alert("Day must be between 1 and 31."); 
    strErr=1; 
    return false; 

    if ((month==4 || month==6 || month==9 || month==11) && day==31) 

    alert("Month "+month+" doesn't have 31 days!") 
    strErr=1; 
    return false 

    if (month == 2) 

    var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)); 
    if (day>29 || (day==29 && !isleap)) 

    alert("February " + year + " doesn't have " + day + " days!"); 
    strErr=1; 
    return false; 


    return true; 

    //--> 
    </script> 
    <form name=myForm onsubmit="return(isValidDate())">
    <input type=text name=date>yyyy-mm-dd
    </form>
      

  4.   

    自动生成 “-”
    要限制其输入格式为
    yyyy-mm-dd 才行.<input type=text onkeyup="bao(this)">
    <script>
    function bao(obj)
    {
        if(obj.value.length==4)
        obj.value+="-";
        if(obj.value.length==7)
        obj.value+="-";
    }
    </script>
      

  5.   

    请问如何把光标放到输入框中指定的位置?<SCRIPT  language=javascript>     
    function moveAtCaret(obj,n){//将obj中光标向dirc方向移动n个字符 
    obj.focus(); 
    var rng=document.selection.createRange(); 
    rng.moveStart("character", n); 
    rng.select(); 

    </SCRIPT> 
    <input id =show value="1234567890"><p> 
    <input type=button value="移动" onclick=moveAtCaret(show,5)>
      

  6.   

    谢谢各位!尤其是wanghr100(灰豆宝宝.net)的热心帮助,真实感激涕零!呜呜呜呜呜!
    大恩大德!没齿难忘!谢谢!
      

  7.   

    能不能在输入字符时替换光标所在位置的字符,替换后光标仍然停留在下一位置处,而不是最后,即文本输入是的insert方法,但要用js实现
    谢谢!
      

  8.   

    <style>
    .a3{width:30;border:0;text-align:center}
    </style><div style="border-width:1;border-color:balck;border-style:solid;width:120;font-size:9pt">
    <input type=text name=year maxlength=4 class=a3>-
    <input type=text name=month maxlength=2 class=a3>-
    <input type=text name=day maxlength=2 class=a3>
    </div>
    自己把楼上的事件了搬过来改改就搞定了 ^^
      

  9.   

    这种方法曾经考虑过,但是其灵活度不够,能否在一个文本输入筐中实现,可不可以编一个js函数,直接在输入的时候调用,因为客户想既用时间控件,有想自己输入啊。
    <script language="javascript">
    function checkDate(obj){
    ………………
    }
    </script>
    <input type="text" name="theTime" onFocus="setday(this)" onKeyPress="checkDate(this)">