<input type="text" name="year" size="4" maxlength="4"value="" onkeyup="if(isNaN(value))execCommand('undo')">我是这样写的,结果是非数字,填写不进去,嘿嘿...

解决方案 »

  1.   

    在另外一个帖子里给你回答了。
    http://expert.csdn.net/Expert/topic/1939/1939723.xml?temp=.2684137
      

  2.   

    thank very much ,leexhy,你的方法真的很好啊!!!
      

  3.   

    onkeyup="if(isNaN(value))execCommand('undo')
    请问isNaN()是什么函数啊,execCommand是个命令吗??
      

  4.   

    在客户端用javascript的正则表达式进行判断!
      

  5.   

    贴一段文章!二、正则表达式与模式匹配    许多表单验证任务包含了模式匹配操作。例如我们要验证这样一个图书编号值的合法性:它或者为5个数字字符,或为10个字符——5个数字,一个连字号,再加上4个数字。虽然这些验证任务也可以用一个专用的函数来完成,但用下面这个正则表达式模式与用户输入值比较更为简便:   /d{5}(-d{4})?/    如果你以前从来没有用过正则表达式,可以将它理解为一种指定字符模式的语言,其主要操作就是匹配。大多数字符只同它们自己匹配,如正则表达式/abc/只匹配字符串“abc”;但也提供了引用某一组字符(如全部数字)以及指定匹配字符个数的方法。在上例中:d{5}匹配的是任意5个数字,-d{4}匹配的是一个连字号加4个数字,?说明模式中的最后一个元素是可选的,可包含也可不包含。    三、正则表达式库及其应用    所谓的正则表达式库就是包含验证常用表单元素的正则表达式的脚本文件,如:  var PatternsDict = new Object(); // 匹配图书编号 PatternsDict.bookPat = /^d{5}(-d{4})?$/; // 匹配12:34以及75:83 PatternsDict.timePat = /^d{2}:d{2}$/; // 匹配5:04 或12:34,但不匹配75:83 PatternsDict.timePat2=/^([1-9]|1[0-2]):[0-5]d$/;   文件中还要包含下面这个提供验证功能的函数:  function validateForm(theForm){// 若验证通过则返回true  var elArr = theForm.elements; // 将表单中的所有元素放入数组  for(var i = 0; i < elArr.length; i++)   with(elArr[i]){              // 对于表单中的每一个元素...    var v = elArr[i].validator; // 获取其validator属性    if(!v) continue;            // 如果该属性不存在,忽略当前元素    var thePat = PatternsDict[v];   // 选择验证用的正则表达式    var gotIt = thePat.exec(value); // 用正则表达式验证elArr[i]的值    if(!gotIt){     alert(name + ": 输入值与正则表达式不匹配(" + v + " —— " + value + ")"); return false;}   } return true;  }   validateForm函数检查每一个表单元素的validator属性,若该属性不存在,脚本忽略此元素并返回循环的开头。否则,从PatternDict中获得当前元素的匹配模式。每一个正则表达式都有对应的RegExp对象,RegExp对象的exec()方法在参数与它所关联的正则表达式不匹配时返回null——此时脚本显示警告对话框。在实际应用场合,为提高效率可以在执行验证之前将这些正则表达式编译。某些输入域可能需要除了简单匹配之外更为复杂的验证。因此,除了模式库之外,还可以为常用的验证任务建立一个函数库。    设上述验证模式文件为valPatterns.js,将它包含到所有必需用它来验证输入的页面中,然后为每个输入框指定合适的validator属性即可。下面是应用上述valPatterns.js的一个完整示例:  <  HTML  ><  HEAD  > <  TITLE  > formVal.HTM <  /TITLE  > <  SCRIPT src=" ValPatterns.js" > <  /SCRIPT  > <  SCRIPT  > function showForm(theForm){  alert("表单:" + theForm.id + "已经提交"); } <  /SCRIPT  ><  /HEAD  >  <  BODY  ><  P  >用正则表达式库验证表单示例.<  /P  > <  FORM id = theForm onSubmit = "return validateForm(theForm)"    Action = "javascript:showForm(theForm)" > 图书编号:  <  INPUT TYPE=TEXT name=book value="12345-6789" validator=bookPat >< BR > 时 间 值: <  INPUT TYPE=TEXT name=time value="12:45" validator=timePat2 > < BR > 单击按钮提交表单: <  INPUT TYPE = SUBMIT > <  /FORM > <  /BODY >< /HTML >
      

  6.   

    isNaN判断括号内的字符串是不是NaN