【问题标题】:jQuery validation: Uncaught type error:$(...) formValidation is not a functionjQuery 验证:未捕获的类型错误:$(...) formValidation 不是函数
【发布时间】:2015-08-18 07:08:10
【问题描述】:

我收到错误 Uncaught TypeError:$(..) form Validation is not a function 该错误来自下面 JS 代码中的一行。我该如何解决?我应该改变什么???请分享您的知识...

 <script type="text/javascript">
$(document).ready(function() {
    $('#loginform').formValidation({
        framework: 'bootstrap',
        excluded: ':disabled',
        icon: {
            valid: 'glyphicon glyphicon-ok',
            invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },
        fields: {
            user_name: {
                validators: {
                    notEmpty: {
                        message: 'The username is required'
                    }
                }
            },
            password: {
                validators: {
                    notEmpty: {
                        message: 'The password is required'
                    }
                }
            }
        }
    });
});
</script>
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8">
		<title>Welcome to Aravind Eyecare RFID</title>
		<meta name="description" content="description">
		<meta name="author" content="Evgeniya">
		<meta name="keyword" content="keywords">
		<meta name="viewport" content="width=device-width, initial-scale=1">
                 
      <script src="plugins/bootstrapvalidator/bootstrapValidator.min.js"></script>
                  
      <script src="plugins/bootstrapvalidator/bootstrapValidator.js"></script>
                 
      <script src="plugins/jquery/jquery.validate.min.js"></script>
                
      <script src="plugins/jquery/jquery-2.1.0.min.js"></script>
                
      <script src="plugins/jquery-ui/jquery-ui.min.js"></script>
                
      <!-- Include all compiled plugins (below), or include individual files as needed -->
                
      <script src="plugins/bootstrap/bootstrap.min.js"></script>
                
      <script src="plugins/justified-gallery/jquery.justifiedgallery.min.js"></script>
                
      <script src="plugins/tinymce/tinymce.min.js"></script>
               
      <script src="plugins/tinymce/jquery.tinymce.min.js"></script>
                <!-- All functions for this theme + document.ready processing -->
                
      <script src="js/devoops.js"></script>
		<link href="plugins/bootstrap/bootstrap.css" rel="stylesheet">
		<link href="http://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">
		<link href='http://fonts.googleapis.com/css?family=Righteous' rel='stylesheet' type='text/css'>
		<link href="css/style.css" rel="stylesheet">
		<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
		<!--[if lt IE 9]>
				<script src="http://getbootstrap.com/docs-assets/js/html5shiv.js"></script>
				<script src="http://getbootstrap.com/docs-assets/js/respond.min.js"></script>
		
                                <![endif]-->
                      
                      
      

<!-- begin snippet: js hide: false -->
<body>
    <form name="loginform" action="logincheck.jsp"  method="post">
        <div class="container-fluid">
            <div id="page-login" class="row">
                <div class="col-xs-12 col-md-4 col-md-offset-4 col-sm-6 col-sm-offset-3">
                    <div class="box">
                        <div class="box-content">
                            <div class="text-center">
                                <h3 class="page-header">Login</h3>
                            </div>
                            <div class="form-group">

                                    <label class="col-xs-3 control-label">Username</label>
                                    <div class="col-xs-4">

                                       <input type="text" class="form-control" name="user_name" placeholder="Username" />
                                    </div>

                                <div class="col-xs-4">

                                        &nbsp;
                                    </div>
                                    <div class="col-xs-4">

                                        &nbsp;
                                    </div>

                            </div>
                            <div class="form-group">
                                <label class="col-xs-3 control-label">Password</label>
                                <div class="col-xs-4">
                                    <input type="password" class="form-control" name="password" placeholder="Password" />
                                </div>

                            </div>
                            <div class="text-center">

                                <div class="col-xs-4">

                                        &nbsp;
                                    </div>
                                    <div class="col-xs-4">

                                        &nbsp;
                                    </div>

                                <input type="submit" class="btn btn-primary" value="Sign in">

                            </div>

                        </div>
                    </div>
                </div>
            </div>
        </div>
    </form>





</body>

</html>

【问题讨论】:

  • 请不要使用jquery-validate 标签,除非您的问题是关于这个特定插件的。编辑的标签。谢谢。
  • 请注意,您的 jQuery 代码用于 FormValidation 插件,但您在 &lt;head&gt; 部分中包含了一个完全不同的验证插件。

标签: javascript jquery formvalidation-plugin


【解决方案1】:

formValidation() 不是 jQuery 原生函数。也许你忘记包含另一个库,或者你忘记在你自己的 js 库中粘贴/编写函数。

【讨论】:

  • 感谢您的回复..我应该添加什么库?
  • 看起来像 github.com/formvalidation/formvalidation 。但我希望你这个库不仅仅在 JS 端进行检查。出于安全原因,您永远需要服务器端检查表单输入。
  • @FabianPicone 你是对的,他需要包含FormValidation JS & CSS 文件。还有一点就是formvalidation不是免费的,需要购买license才能使用。
【解决方案2】:

首先你必须给你的表单一个 ID

 <form id="loginform" action="logincheck.jsp"  method="post">

然后尝试在 bootstrapValidator 之前加载 jQuery 库

<script src="plugins/jquery/jquery-2.1.0.min.js"></script>
<script src="plugins/jquery-ui/jquery-ui.min.js"></script>
<script src="plugins/jquery/jquery.validate.min.js"></script>
<script src="plugins/bootstrapvalidator/bootstrapValidator.js"></script> 

如果您想使用名称更改验证来

$("[name='loginform']").formValidation({

【讨论】:

    【解决方案3】:

    尝试改变

    $('#loginform').formValidation({   
    

    $('#loginform').bootstrapValidator({
    

    【讨论】:

      【解决方案4】:

      我之前也遇到过类似的问题。当我执行以下操作时,它得到了解决。据我说,问题出在这里:

      <script src="plugins/bootstrapvalidator/bootstrapValidator.min.js"></script> <script src="plugins/bootstrapvalidator/bootstrapValidator.js"></script>
      

      &

      <script src="plugins/jquery/jquery.validate.min.js"></script>
      <script src="plugins/jquery/jquery-2.1.0.min.js"></script>
      

      您已包含 bootstrapValidator.min.js 和 bootstrapValidator.js。尝试删除一个,您应该能够运行您的代码。每个文档只能拥有一次“A”级。 bootstrapValidator.min.js 和 bootstrapValidator.js 包含相同的代码。

      bootstrapValidator.js 是整洁的代码。它有适当的缩进和间距。

      .min.js 已从中删除所有空格和 cmets。它有助于更​​快地加载网页并且体积更小。

      还需要指出的是,您最好将缩小版本 (.min) 用于您的实时环境,因为 Google 现在正在检查页面加载时间。将所有 JS 文件压缩意味着它们会加载得更快,并且会给你更多的分数。

      编辑 1 -

      我还意识到需要遵循优先顺序。例如:如果您想使用 Bootstrap 进行下拉,则需要在 JQuery 之前包含 Bootstrap。原因是它们都是相互依赖的,并且在 Bootstrap.JS 中使用了 JQuery 如果您首先加载引导程序,它可能会在实际调用引导程序代码之前完成,但在 jquery 完成加载之前完成,因此缺少参考。

      因此,还要确保您的 JS 库不相互依赖。如果是,请找出偏好顺序。

      【讨论】:

        【解决方案5】:
        <!DOCTYPE html>
        <html lang="en">
        <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta name="description" content="">
        <meta name="author" content="">
        <title>Student By Admin</title>
        
        <!-- Bootstrap Core CSS -->
        <link href="../bower_components/bootstrap-3.3.6/dist/css/bootstrap.min.css" rel="stylesheet">
        <!-- MetisMenu CSS -->
        <link href="../bower_components/metisMenu/dist/metisMenu.min.css"   rel="stylesheet">
        <!-- Custom CSS -->
        <link href="../dist/css/sb-admin-2.css" rel="stylesheet">
        
        <!-- Custom Fonts -->
        <link href="../bower_components/font-awesome/css/font-awesome.min.css"  rel="stylesheet" type="text/css">
        <link href="../errorMessages.css" rel="stylesheet">
        <script type="text/javascript" src="../jquery-2.2.3.min.js"></script>
        <script type="text/javascript" src="../formValidation.min.js"></script>
        <script type="text/javascript" src="../bootstrap1.min.js"></script>
        
        
        <script>
        $(document).ready(function() {
            // Generate a simple captcha
            function randomNumber(min, max) {
                return Math.floor(Math.random() * (max - min + 1) + min);
            }
            function generateCaptcha() {
                $('#captchaOperation').html([randomNumber(1, 100), '+', randomNumber(1, 200), '='].join(' '));
            }
            generateCaptcha();
            $('#contactForm')
                .formValidation({
                    framework: 'bootstrap',
                    icon: {
                        valid: 'glyphicon glyphicon-ok',
                        invalid: 'glyphicon glyphicon-remove',
                        validating: 'glyphicon glyphicon-refresh'
                    },
                    fields: {
                        firstName: {
                            row: '.col-xs-4',
                            validators: {
                                notEmpty: {
                                    message: 'The first name is required'
                                }
                            }
                        },
                        lastName: {
                            row: '.col-xs-4',
                            validators: {
                                notEmpty: {
                                    message: 'The last name is required'
                                }
                            }
                        },
                        phoneNumber: {
                            validators: {
                                notEmpty: {
                                    message: 'The phone number is required'
                                },
                                regexp: {
                                    message: 'The phone number can only contain the digits, spaces, -, (, ), + and .',
                                    regexp: /^[0-9\s\-()+\.]+$/
                                }
                            }
                        },
                        email: {
                            validators: {
                                notEmpty: {
                                    message: 'The email address is required'
                                },
                                emailAddress: {
                                    message: 'The input is not a valid email address'
                                }
                            }
                        },
                        message: {
                            validators: {
                                notEmpty: {
                                    message: 'The message is required'
                                },
                                stringLength: {
                                    max: 700,
                                    message: 'The message must be less than 700 characters long'
                                }
                            }
                        },
                        captcha: {
                            validators: {
                                callback: {
                                    message: 'Wrong answer',
                                    callback: function(value, validator, $field) {
                                        var items = $('#captchaOperation').html().split(' '),
                                            sum   = parseInt(items[0]) + parseInt(items[2]);
                                        return value == sum;
                                    }
                                }
                            }
                        }
                    }
                })
                .on('err.form.fv', function(e) {
                    // Regenerate the captcha
                    generateCaptcha();
                });
        });
        </script>
        </head>
        <body>
        
            <div id="wrapper">
                <!-- Navigation -->
                <nav class="navbar navbar-default navbar-static-top" role="navigation"
                    style="margin-bottom: 0">
                    <div class="navbar-header">
                        <button type="button" class="navbar-toggle" data-toggle="collapse"
                            data-target=".navbar-collapse">
                            <span class="sr-only">Toggle navigation</span> <span
                                class="icon-bar"></span> <span class="icon-bar"></span> <span
                                class="icon-bar"></span>
                        </button>
                        <a class="navbar-brand" href="index.html">Student Management System</a>
                    </div>
                    <!-- /.navbar-header -->
        
                    <ul class="nav navbar-top-links navbar-right">
                        <li class="dropdown"><a class="dropdown-toggle"
                            data-toggle="dropdown" href="#"> <i
                                class="fa fa-envelope fa-fw"></i> <i class="fa fa-caret-down"></i>
                        </a>
                            <ul class="dropdown-menu dropdown-messages">
                                <li><a href="#">
                                        <div>
                                            <strong>Pradeep</strong> <span class="pull-right text-muted">
                                                <em>Hi...</em>
                                            </span>
                                        </div>
                                        <div>Hi...</div>
                                </a></li>
                                <li class="divider"></li>
                                <li><a href="#">
                                        <div>
                                            <strong>Pramod</strong> <span class="pull-right text-muted">
                                                <em>Yesterday</em>
                                            </span>
                                        </div>
                                        <div>Hello...</div>
                                </a></li>
                                <li class="divider"></li>
                                <li><a href="#">
                                        <div>
                                            <strong>Nandi</strong> <span class="pull-right text-muted">
                                                <em>Yesterday</em>
                                            </span>
                                        </div>
                                        <div>Hello...</div>
                                </a></li>
                                <li class="divider"></li>
                                <li><a class="text-center" href="#"> <strong>Read
                                            All Messages</strong> <i class="fa fa-angle-right"></i>
                                </a></li>
                            </ul> <!-- /.dropdown-messages --></li>
                        <!-- /.dropdown -->
                        <li class="dropdown"><a class="dropdown-toggle"
                            data-toggle="dropdown" href="#"> <i class="fa fa-tasks fa-fw"></i>
                                <i class="fa fa-caret-down"></i>
                        </a>
                            <ul class="dropdown-menu dropdown-tasks">
                                <li><a href="#">
                                        <div>
                                            <p>
                                                <strong>Task 1</strong> <span class="pull-right text-muted">40%
                                                    Complete</span>
                                            </p>
                                            <div class="progress progress-striped active">
                                                <div class="progress-bar progress-bar-success"
                                                    role="progressbar" aria-valuenow="40" aria-valuemin="0"
                                                    aria-valuemax="100" style="width: 40%">
                                                    <span class="sr-only">40% Complete (success)</span>
                                                </div>
                                            </div>
                                        </div>
                                </a></li>
                                <li class="divider"></li>
                                <li><a href="#">
                                        <div>
                                            <p>
                                                <strong>Task 2</strong> <span class="pull-right text-muted">20%
                                                    Complete</span>
                                            </p>
                                            <div class="progress progress-striped active">
                                                <div class="progress-bar progress-bar-info" role="progressbar"
                                                    aria-valuenow="20" aria-valuemin="0" aria-valuemax="100"
                                                    style="width: 20%">
                                                    <span class="sr-only">20% Complete</span>
                                                </div>
                                            </div>
                                        </div>
                                </a></li>
                                <li class="divider"></li>
                                <li><a href="#">
                                        <div>
                                            <p>
                                                <strong>Task 3</strong> <span class="pull-right text-muted">60%
                                                    Complete</span>
                                            </p>
                                            <div class="progress progress-striped active">
                                                <div class="progress-bar progress-bar-warning"
                                                    role="progressbar" aria-valuenow="60" aria-valuemin="0"
                                                    aria-valuemax="100" style="width: 60%">
                                                    <span class="sr-only">60% Complete (warning)</span>
                                                </div>
                                            </div>
                                        </div>
                                </a></li>
                                <li class="divider"></li>
                                <li><a href="#">
                                        <div>
                                            <p>
                                                <strong>Task 4</strong> <span class="pull-right text-muted">80%
                                                    Complete</span>
                                            </p>
                                            <div class="progress progress-striped active">
                                                <div class="progress-bar progress-bar-danger"
                                                    role="progressbar" aria-valuenow="80" aria-valuemin="0"
                                                    aria-valuemax="100" style="width: 80%">
                                                    <span class="sr-only">80% Complete (danger)</span>
                                                </div>
                                            </div>
                                        </div>
                                </a></li>
                                <li class="divider"></li>
                                <li><a class="text-center" href="#"> <strong>See
                                            All Tasks</strong> <i class="fa fa-angle-right"></i>
                                </a></li>
                            </ul> <!-- /.dropdown-tasks --></li>
                        <!-- /.dropdown -->
                        <li class="dropdown"><a class="dropdown-toggle"
                            data-toggle="dropdown" href="#"> <i class="fa fa-bell fa-fw"></i>
                                <i class="fa fa-caret-down"></i>
                        </a>
                            <ul class="dropdown-menu dropdown-alerts">
                                <li><a href="#">
                                        <div>
                                            <i class="fa fa-comment fa-fw"></i> New Comment <span
                                                class="pull-right text-muted small">4 minutes ago</span>
                                        </div>
                                </a></li>
                                <li class="divider"></li>
                                <li><a href="#">
                                        <div>
                                            <i class="fa fa-twitter fa-fw"></i> 3 New Followers <span
                                                class="pull-right text-muted small">12 minutes ago</span>
                                        </div>
                                </a></li>
                                <li class="divider"></li>
                                <li><a href="#">
                                        <div>
                                            <i class="fa fa-envelope fa-fw"></i> Message Sent <span
                                                class="pull-right text-muted small">4 minutes ago</span>
                                        </div>
                                </a></li>
                                <li class="divider"></li>
                                <li><a href="#">
                                        <div>
                                            <i class="fa fa-tasks fa-fw"></i> New Task <span
                                                class="pull-right text-muted small">4 minutes ago</span>
                                        </div>
                                </a></li>
                                <li class="divider"></li>
                                <li><a href="#">
                                        <div>
                                            <i class="fa fa-upload fa-fw"></i> Server Rebooted <span
                                                class="pull-right text-muted small">4 minutes ago</span>
                                        </div>
                                </a></li>
                                <li class="divider"></li>
                                <li><a class="text-center" href="#"> <strong>See All Alerts</strong> <i class="fa fa-angle-right"></i>
                                </a></li>
                            </ul> <!-- /.dropdown-alerts --></li>
                        <!-- /.dropdown -->
                        <li class="dropdown"><a class="dropdown-toggle"
                            data-toggle="dropdown" href="#"> <i class="fa fa-user fa-fw"></i>
                                <i class="fa fa-caret-down"></i>
                        </a>
                            <ul class="dropdown-menu dropdown-user">
                                <li><a href="#"><i class="fa fa-user fa-fw"></i> User Profile</a></li>
                                <li><a href="#"><i class="fa fa-gear fa-fw"></i> Settings</a>
                                </li>
                                <li class="divider"></li>
                                <li><a href="LoginPage.jsp"><i class="fa fa-sign-out fa-fw"></i> Logout</a></li>
                            </ul> <!-- /.dropdown-user --></li>
                        <!-- /.dropdown -->
                    </ul>
                    <!-- /.navbar-top-links -->
        
                    <div class="navbar-default sidebar" role="navigation">
                        <div class="sidebar-nav navbar-collapse">
                            <ul class="nav" id="side-menu">
                                <li class="sidebar-search">
                                    <div class="input-group custom-search-form">
                                        <input type="text" class="form-control" placeholder="Search...">
                                        <span class="input-group-btn">
                                            <button class="btn btn-default" type="button">
                                                <i class="fa fa-search"></i>
                                            </button>
                                        </span>
                                    </div> <!-- /input-group -->
                                </li>
                                <li><a href="AdminHomePage.jsp"><i
                                        class="fa fa-dashboard fa-fw"></i>Home page</a></li>
                                <li><a href="#"><i class="fa fa-files-o fa-fw"></i>Registration<span
                                        class="fa arrow"></span></a>
                                    <ul class="nav nav-second-level">
                                        <li><a href="StudentByAdminPage.jsp">Student</a></li>
                                        <li><a href="ParentByAdminPage.jsp">Parent</a></li>
                                        <li><a href="TeacherByAdminPage.jsp">Teacher</a></li>
                                    </ul> <!-- /.nav-second-level --></li>
                            </ul>
                        </div>
                        <!-- /.sidebar-collapse -->
                    </div>
                    <!-- /.navbar-static-side -->
                </nav>
        
                <!-- Page Content -->
                <div id="page-wrapper">
                    <div class="container-fluid">
                        <div class="row">
                            <div class="col-lg-12">
                                <h1 class="page-header">Student By Admin</h1>
                            </div>
                            <!-- /.col-lg-12 -->
        
                        </div>
        
                        <!-- /.row -->
                    </div>
                    <div class="row">
                        <div class="col-lg-12">
                            <div class="panel panel-default">
                                <div class="panel-heading">Student Details</div>
                                <div class="panel-body">
                                    <form id="contactForm" class="form-horizontal">
                                        <div class="form-group">
                                            <label class="col-xs-3 control-label">Full name</label>
                                            <div class="col-xs-4">
                                                <input type="text" class="form-control" name="firstName" placeholder="First name" />
                                            </div>
                                            <div class="col-xs-4">
                                                <input type="text" class="form-control" name="lastName" placeholder="Last name" />
                                            </div>
                                        </div>
        
                                        <div class="form-group">
                                            <label class="col-xs-3 control-label">Phone number</label>
                                            <div class="col-xs-5">
                                                <input type="text" class="form-control" name="phoneNumber" />
                                            </div>
                                        </div>
        
                                        <div class="form-group">
                                            <label class="col-xs-3 control-label">Email address</label>
                                            <div class="col-xs-5">
                                                <input type="text" class="form-control" name="email" />
                                            </div>
                                        </div>
        
                                        <div class="form-group">
                                            <label class="col-xs-3 control-label">Message</label>
                                            <div class="col-xs-9">
                                                <textarea class="form-control" name="message" rows="7"></textarea>
                                            </div>
                                        </div>
        
                                        <div class="form-group">
                                            <label class="col-xs-3 control-label" id="captchaOperation"></label>
                                            <div class="col-xs-3">
                                                <input type="text" class="form-control" name="captcha" />
                                            </div>
                                        </div>
        
                                        <div class="form-group">
                                            <div class="col-xs-9 col-xs-offset-3">
                                                <button type="submit" class="btn btn-primary">Submit</button>
                                            </div>
                                        </div>
                                    </form>
                                </div>
                            </div>
                        </div>
                    </div>
                    <!-- /.container-fluid -->
                </div>
                <!-- /#page-wrapper -->
                <!-- /#wrapper -->
                <!-- jQuery -->
                <script type="text/javascript" src="../jquery-2.2.3.min.js"></script>
                <!-- Bootstrap Core JavaScript -->
        
        
                <script src="../bower_components/bootstrap-3.3.6/dist/js/bootstrap.min.js"></script>
                <!-- Metis Menu Plugin JavaScript -->
                <script src="../bower_components/metisMenu/dist/metisMenu.min.js"></script>
                <!-- Custom Theme JavaScript -->
                <script src="../dist/js/sb-admin-2.js"></script>
        </body>
        
        </html>
        

        【讨论】:

        • 这里没有收到错误消息,为什么? StudentByAdminPage.jsp?firstName=&lastName=&phoneNumber=&email=&message=&captcha=:37 Uncaught TypeError: $(...).formValidation is not a function
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-06-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-21
        • 1970-01-01
        相关资源
        最近更新 更多