实时验证javascript未在Internet Explorer中运行

时间:2012-04-02 13:22:17

标签: javascript validation live

我正在尝试使用一个名为LiveValidation的预构建的javascript库,它会在您输入时验证测试字段。该脚本在FireFox中正常运行,但它根本不在IE中运行。我去了LiveValidation的网站,它说它支持IE 6,7,8(我正在使用IE7),我已经确认Javascript已启用。

这是Javascript文件的链接...... http://livevalidation.com/download

这是我使用验证器的HTML代码...

           <label>First Name<font style="color:#FF0000;">*</font> </label>
            <input type="text" value="" name="first_name" id="first_name"/>
            <script type="text/javascript">
            var f1 = new LiveValidation('first_name');
            f1.add(Validate.Presence,{failureMessage: " Please enter username"});
            f1.add(Validate.Format,{pattern: /^[a-z\s]+$/i ,failureMessage: " It allows only characters"});
            f1.add(Validate.Format,{pattern: /^[a-zA-Z][a-z\s]{0,}$/,failureMessage: " Invalid username"});
            f1.add(Validate.Length, { minimum: 4, maximum: 15 } );
            </script>

1 个答案:

答案 0 :(得分:0)

您应该将验证代码包含在函数中,然后在用户键入文本字段时调用该函数。例如......

       <script type="text/javascript">
        function doValidation(){
            var f1 = new LiveValidation('first_name');
            f1.add(Validate.Presence,{failureMessage: " Please enter username"});
            f1.add(Validate.Format,{pattern: /^[a-z\s]+$/i ,failureMessage: " It allows only characters"});
            f1.add(Validate.Format,{pattern: /^[a-zA-Z][a-z\s]{0,}$/,failureMessage: " Invalid username"});
            f1.add(Validate.Length, { minimum: 4, maximum: 15 } );
            }
        </script>

        <label>First Name<font style="color:#FF0000;">*</font> </label>
        <input type="text" value="" name="first_name" id="first_name" onKeyPress="doValidation()" />

因此,每次用户按下文本字段中的某个键时,它都会调用doValidation()并运行LiveValidator。我认为IE正在做正确的事情,Firefox可能只是通过猜测您打算编码的内容来帮助您。