0

一切似乎都被正确引用,但我无法让它正常工作。奇怪的是,它工作了一次,但在弹出验证消息之前花了 10 秒钟,没有改变任何东西并再次尝试但停止工作。我唯一的警告是event.returnValue is deprecated. Please use the standard event.preventDefault() instead.在 jQuery 库中。

<html>

 <head>
<link rel="stylesheet" href="jQuery-Validation-Engine-master/css/validationEngine.jquery.css" type="text/css"/>
   </head>

<body>

    <form id="formID">
        <input class="validate[required]" type="text" id="agree" name="agree"/>
    </form>

 <script src='js/jquery-1.10.2.min.js'></script>
    <script src="jQuery-Validation-Engine-master/js/languages/jquery.validationEngine-en.js" type="text/javascript" charset="utf-8"></script>
    <script src="jQuery-Validation-Engine-master/js/jquery.validationEngine.js" type="text/javascript" charset="utf-8"></script>

    <script>
        $(document).ready(function(){
            $("#formID").validationEngine();
        });
    </script>

</body>

如果上述内容没有任何问题,那么可能是我的项目中的其他东西在干扰,但我们将不胜感激。

4

2 回答 2

0

发生的事情可能是在加载 jQuery 时您的插件尚未加载,因此当您调用该validationEngine()方法时,它尚未定义。我建议使用Modernizr同步加载您的脚本,并在两个脚本都加载后调用该方法。

如果您坚持使用 Modernizr 方式,您需要做的就是将您的 Modernizr 的最小化版本包含在头部并调用您的脚本,如下所示。

<!doctype html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Your Document</title>
        <!--
            following script loads first. nevermind the version, I copied it from a script of mine
        -->
        <script type="text/javascript" src="js/modernizr.2.6.2.min.js"></script>
    </head>

    <body>
        <form id="formID">
            <!-- etc -->
        </form>
        <script type="text/javascript">
            Modernizr.load([
            {
                // following loads next
                load: 'http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js',
                complete: function() {
                    if (!window.jQuery) Modernizr.load('js/jquery-1.10.2.min.js');
                    // this is your local copy of jQuery, in case you might need a fallback
                }
            },{
                // finally the remaining scripts load
                load:[
                    'jQuery-Validation-Engine-master/js/languages/jquery.validationEngine-en.js',
                    'jQuery-Validation-Engine-master/js/jquery.validationEngine.js'
                ],
                complete: function() {
                    // all is loaded. do what you want here.
                    $("#formID").validationEngine();
                }
            }]);
        </script>
    </body>
</html>
于 2013-11-16T14:14:25.580 回答
0

在我上面提到的情况下,更新到jQuery lib 1.11.0为我消除了警告。(最新镀铬)

如果有兴趣,这是我最终使用验证引擎的方式:

<form id="formID" />
<button type="submit" value="Save" id="Save" onclick="clicked(event);">Submit Survey</button>

function clicked (e) 
    {
        if (confirm('Are you sure you want to submit?')) 
        {
           if ($("#formID").validationEngine('validate'))
           {
               my.LocalStorage.save(); 
           }
        }   
        e.preventDefault();  
    }
于 2013-12-04T20:43:49.560 回答