要求在“行数”这一栏中只能输入2,3,4 这三个数字,代码如下:<script language="javascript">
function checknum(){
var rownum=document.getElementById("tf_module_rownum");
alert(rownum);
var rownum_val=rownum.value;
regnum="^{1}[2-4]$";
if (regnum.test(rownum_val)!=true){
  alert('输入行数只能是2-4行');
  rownum.value=2;
}
}
</script>然后设置对应文本框在失去焦点的时候触发这个函数:
<td width="27%"><input type="text" name="tf_module_rownum" onBlur="checknum()"></td>经测试,正则表达式是正确的,但在运行时,却在这一行  if (regnum.test(rownum_val)!=true){ 
出现“对象不支持此属性或方法”的错误,不知是什么问题,盼请各位JS高手帮忙解决,小弟多谢了!

解决方案 »

  1.   

    <input id="tf_module_rownum" ...
      

  2.   

    var regnum= new RegExp("^{1}[2-4]$");或者var regnum = /^{1}[2-4]$/;你那样写会认作字符串而不是RegExp对象
      

  3.   

    if (regnum.test(rownum_val)!=true){ 出现“对象不支持此属性或方法”的错误基本上这个问题的就是我说的情况
      

  4.   

    regnum=new RegExp("^{1}[2-4]$");
    regnum对象这样进行初始化!
      

  5.   

    现在又出问题了,在下面这一行
    var regnum=/^{1}[2-4]$/;提示:unexpected qunatifier 
    这又是怎么回事? 这个正则表达式测试时正常的
      

  6.   

    var regnum=/^{1}[2-4]$/;{1}这个不是分组的意思么,在这里想要表达什么意思呢?
      

  7.   


    <html>
    <head>
    <title>提交表单</title>
    <script src="jquery-1.3.2.min.js" ></script>
    <script>
    $(function(){
    $("#tf_module_rownum").blur(function(){
    regnum=/^[2-4]$/;
    alert(regnum.test($(this).text()));
    })
    })
    </script>
    </head>
    <body>
    <input type="text" id="tf_module_rownum"  />
    </body>
    </html>
      

  8.   

    这句是针对 lz 使劲在强调 该正则表达式已经经过测试,为正确,如果lz用js测试可用,就不会来提问了。。用其他语言,倒确实可以写成 
     
    regnum="^{1}[2-4]$";
      

  9.   

    楼主何不这样写:
    if (!/[2-4]{1}/g.test(rownum_val))
    {
      //do something
    }
      

  10.   

    1 <xhtml>中规定用id属性取代name属性
    2 /^{1}[2-4]$/这是啥意思呢?{m}表示的是匹配前一项m次,不是分组吧,分组应该是这样写的/^([2-4])$\1/,不建议这么写,还是简单点好。
    3 rownum_val确定是字符串么??有值么????
      

  11.   

    <input type="text" id="tf_module_rownum" name="tf_module_rownum" onBlur="checknum()">
    <script text="text/javascript">
    function checknum(){
    var rownum=document.getElementById("tf_module_rownum");
    var rownum_val=rownum.value;
    if (!/^[2-4]$/.test(rownum_val)){
        alert('输入行数只能是2-4行');
        rownum.focus();
        rownum.select();
        return false;
     }
    }
    </script>