在keypress的时候判断如果不是正确的IP字符的话
加上window.event.keyCode = 0;
就不会输入了

解决方案 »

  1.   

    大概搞个,参考吧
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    <link href="tab.css" rel="stylesheet" type="text/css"></head>
    <script language="javascript">
    function check1(ip,obj){
        /^(?:1\d?\d?|2[0-5]?[0-5]?)(?:\.(?:1\d?\d?|2[0-5]?[0-5]?)?){0,3}$/.test(ip)?obj.val=ip:obj.value=obj.val||'';
    }</script>
    <body>
    <FORM name="admin" method="post" action="xitongok.php">    <tr>
          <td width="50%" height="24" align="left" >IP地址:</td>
          <td width="50%" align="left" ><input name="ip" type="text"  id="ip" value="" onkeyup="return check1(this.value,this)"/></td>
        </tr><FORM>
    </body>
    </html>
      

  2.   


    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    <link href="tab.css" rel="stylesheet" type="text/css"></head>
    <script language="javascript">
    function check1(n,obj){
        var arr = n.split(".");
        if(arr.length>4){
            obj.value = n.substring(0,n.length-1);
        }
        for(var i=0;i<arr.length;i++){        
            var val = arr[i];
            var re = /^([1-9]\d*|0)$/;
            if(val!=""){                    
                if(!re.test(val)){
                    obj.value = n.substring(0,n.length-1);
                }else{
                    var k = new Number(val);
                    if(k>255||k<0){
                        obj.value = n.substring(0,n.length-1);
                    }
                }        
            }
        }
    }</script>
    <body>
    <FORM name="admin" method="post" action="xitongok.php">    <tr>
          <td width="50%" height="24" align="left" >IP地址:</td>
          <td width="50%" align="left" ><input name="ip" type="text"  id="ip" value="<?php echo $ip?>" onkeypress="check1(this.value,this)" <?php if ($dhcp=='1') echo "disabled = 'disabled'";?>/></td>
        </tr><FORM>
    </body>
    </html>
      

  3.   

    哦用了楼上的onkeypress 可是还是显示当前输入错误的一个字符呀 能不能只要是输入错误的字符就不能显示 
      

  4.   

    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <title>无标题文档</title>
            <link href="tab.css" rel="stylesheet" type="text/css">
        </head>
        <script language="javascript">
            function test(evt){
                var e = window.event || evt;
                var r = /^(([1-9]\d?|1\d{2}|2[0-4]\d|25[0-5]|0)\.){0,3}([1-9]\d?|1\d{2}|2[0-4]\d|25[0-5]|0)?$/;
                if (!r.test(e.srcElement.value + String.fromCharCode(e.keyCode))) {
                    e.keyCode = 0;
                    e.returnValue = false;
                }
            }
        </script>
        <body>
            <FORM name="admin" method="post" action="xitongok.php">
                <table>
                    <tr>
                        <td width="50%" height="24" align="right">IP地址:</td>
                        <td width="50%" align="left">
                            <input name="ip" type="text" id="ip" value="" onkeypress="test(event);"/>
                        </td>
                    </tr>
                </table>
            </FORM>
        </body>
    </html>
      

  5.   

    看看是不是你要的效果。
    用了一个很长的正则式,
    其实,这么长的正则式不比程序实现更好。<html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <title>无标题文档</title>
            <link href="tab.css" rel="stylesheet" type="text/css">
        </head>
        <script language="javascript">
            function test(evt){
                var e = window.event || evt;
                var r = /^(([1-9]\d?|1[013-9]\d|12[0-689]|2[01]\d|22[0-3])(((\.([1-9]\d?|1\d{2}|2[0-4]\d|25[0-5]|0)?){0,2})|((\.([1-9]\d?|1\d{2}|2[0-4]\d|25[0-5]|0)){2}(\.([1-9]\d?|1\d{2}|2[0-4]\d|25[0-5])?)?)))$/;
                if (!r.test(e.srcElement.value + String.fromCharCode(e.keyCode))) {
                    e.keyCode = 0;
                    e.returnValue = false;
                }
            }
        </script>
        <body>
            <FORM name="admin" method="post" action="xitongok.php">
                <table>
                    <tr>
                        <td width="50%" height="24" align="right">IP地址:</td>
                        <td width="50%" align="left">
                            <input name="ip" type="text" id="ip" value="" onkeypress="test(event);"/>
                        </td>
                    </tr>
                </table>
            </FORM>
        </body>
    </html>
      

  6.   

    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <title>无标题文档</title>
            <link href="tab.css" rel="stylesheet" type="text/css">
        </head>
        <script language="javascript">
            function test(evt){
                var e = window.event || evt;
                var r = /^(([1-9]\d?|1[013-9]\d|12[0-689]|2[01]\d|22[0-3])(((\.([1-9]\d?|1\d{2}|2[0-4]\d|25[0-5]|0)?){0,2})|((\.([1-9]\d?|1\d{2}|2[0-4]\d|25[0-5]|0)){2}(\.([1-9]\d?|1\d{2}|2[0-4]\d|25[0-5])?)?)))$/;
                if (!r.test(e.srcElement.value + String.fromCharCode(e.keyCode))) {
                    e.keyCode = 0;
                    e.returnValue = false;
                }
            }
            
            function test1(evt){
                var e = window.event || evt;
                if ((e.keyCode < 48 || e.keyCode > 57) && (e.keyCode != 190) 
    && (e.keyCode != 8) && (e.keyCode != 37) && (e.keyCode != 38) 
    && (e.keyCode != 39) && (e.keyCode != 40) && (e.keyCode != 46)) {
                    window.event.keyCode = 0;
                    window.event.returnValue = false;
                }
            }
        </script>
        <body>
            <FORM name="admin" method="post" action="xitongok.php">
                <table>
                    <tr>
                        <td width="50%" height="24" align="right">
                            IP地址:
                        </td>
                        <td width="50%" align="left">
                            <input name="ip" type="text" id="ip" value="" onkeypress="test(event);" onkeydown="(event);"/>
                        </td>
                    </tr>
                </table>
            </FORM>
        </body>
    </html>