javascript - jQuery .blur() 事件未触发

标签 javascript jquery html forms

我有一个简单的登录表单,如下所示,附带一个 jQuery 脚本。我正在尝试使用 jQuery 进行一些简单的客户端表单验证。但是,我似乎无法触发模糊事件。我想不出我做错了什么,我试过使用 '.on('blur', fn(){})' 但这也不起作用。请帮忙!

这是我的 HTML 文件:

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>DMIT 222 - Catalogue Project: Admin Login</title>
        <link rel="stylesheet" type="text/css" href="../styles/divs.css" />
        <link rel="stylesheet" type="text/css" href="../styles/fonts.css" />
        <link rel="stylesheet" type="text/css" href="../styles/tags.css" />
        <link rel="stylesheet" type="text/css" href="../styles/tables.css" />
        <link rel="stylesheet" type="text/css" href="styles/forms.css" />
        <script src="http://code.jquery.com/jquery-latest.js"></script>
        <script src="../scripts/loginFormValidation.js"></script>
    </head>
    <body>
        <div id="wrapper">
            <header>
                <h1>Ship Catalogue</h1>
            </header>
            <div id="mainContent">
                <form id="LoginForm" name="LoginForm" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
                    <div class="FormRow"><label for="Username">Username:</label><input type="text" name="Username" id="Username" /><p id="userErrors"><?php echo $userErrors; ?></p></div>
                    <div class="FormRow"><label for="Password">Password:</label><input type="password" name="Password" id="Password" /><p id="passwordErrors"><?php echo $passwordErrors; ?></p></div>
                    <div class="FormRow"><input type="submit" name="Submit" value="Login!" /></div>
                </form>
            </div>
            <footer>
                <a href="http://www.logicanddesign.ca/">Site Developed by Logic &amp; Design</a>
            </footer>
        </div>
    </body>
</html>

这是 loginFormValidation.js 脚本:

$("#Username").blur(function(e){
    alert();
    if ($("#Username").val() == "") {
        $("#userErrors").text("Username must be entered!");
    }
});

$("#Password").blur(function(e){
    if ($("#Password").val() == "") {
        $("#passwordErrors").text("Password must be entered!");
    }
});

最佳答案

您需要将事件包装在 jQuery 的 document.ready 函数中:

$(document).ready(function() {
    $("#Username").blur(function(e){
       alert();
        if ($("#Username").val() == "") {
            $("#userErrors").text("Username must be entered!");
        }
    });

    $("#Password").blur(function(e){
        if ($("#Password").val() == "") {
            $("#passwordErrors").text("Password must be entered!");
        }
    });
});

关于javascript - jQuery .blur() 事件未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13667864/

相关文章:

html - 不要调整表格单元格的大小

html - 在内容 CSS 结束后停止过度滚动

Javascript:实例化对象数组的最佳方式

javascript - 使用 ASP.NET MVC 管理窗口的通用解决方案

javascript - Chrome 扩展——将 popup.js 中的数组传递到注入(inject)的 javascript 文件中

javascript - Kendo Scheduler 任务颜色

javascript - Jquery数据表不显示列标题

javascript - 将简单文件附加到输入

javascript - 我在分配 onclick 属性时用完了引号

html - 默认输入边框在 div 上显示不同