jQuery验证仅适用于页面刷新

时间:2013-01-09 18:33:36

标签: jquery jquery-mobile jquery-validate

我的网站上有this jsFiddle中的代码。那里的代码正是在我的网站上实现的内容,但我的网站在<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.min.js"></script>标记之后也有<meta>(jsFiddle自动调用它;这在下面的代码中显示)。代码在jsFiddle上按预期工作,但在我的网站上验证不起作用,除非刷新页面或在第一次提交后单击后退按钮。表单重定向到logins.php脚本(现在为空白),按下后退按钮后,验证工作正常。我在表单上有data-ajax="false"。我可以做什么,以便表单验证始终有效,而不仅仅是在刷新或返回后?

以下是代码:

<!DOCTYPE html>
<html>
<head> 
    <title>Welcome</title> 

    <meta name="viewport" content="width=device-width, initial-scale=1"> 

    <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
    <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/jquery.validate.js"></script>
    <script type="text/javascript">
        $(document).ready(function(){
            $("#loginForm").validate();
        });
    </script>
    <style type="text/css">
        label.error {
            font-weight:bold;
            color:red;
        }
    </style>
    <script type="text/javascript" src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />

</head> 
<body>
    <div data-role="page" id="login">
        <div data-role="header"><h1>Log In</h1></div>
        <div data-role="content">You can use the fields below to log in to your account.<br>
        <br>
        <form action="logins.php" method="POST" id="loginForm" name="loginForm" data-ajax="false">
            <label for="email" class="ui-hidden-accessible">Email Address:</label>
            <input type="text" id="email" name="email" value="" class="required email" minlength="5" placeholder="Email Address" />
            <label for="pass" class="ui-hidden-accessible">Password:</label>
            <input type="password" id="pass" name="pass" value="" class="required" minlength="5" placeholder="Password" />
            <input class="submit" data-role="submit" type="submit" value="Submit" />
        </form><br>
        <br>
        <a href="index.php" data-role="button" data-transition="slide" data-direction="reverse">Return to home page</a>
        </div>
        <div data-role="footer"><h4>&copy; Me 2013</h4></div>
    </div>
</body>
</html>

1 个答案:

答案 0 :(得分:2)

http://jquerymobile.com/demos/1.2.0/docs/api/events.html

$(document).ready()不应与jQuery Mobile一起使用。请改用$(document).bind("pageinit")

此外,jQuery Mobile 1.2支持jQuery Core 1.8.2(不是1.8.3)。