jqBootstrapValidation不起作用,始终返回有效值;

jqBootstrapValidation not working, always return valid value;

本文关键字:返回 有效值 不起作用 jqBootstrapValidation      更新时间:2023-09-26

不知道为什么我的验证不起作用,尝试使用各种验证器,但结果总是返回有效。。

需要第二只眼睛来发现错误。。

第一次使用snippet时,希望我下面的snippet是正确的。。

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width, initial-scale=1">
		<title>Test Files</title>
		<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.css" rel="stylesheet">
		<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
      
		<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
		<script src="https://cdnjs.cloudflare.com/ajax/libs/jqBootstrapValidation/1.3.7/jqBootstrapValidation.min.js"></script>
		<script>
			$(function() {
                $("input,select,textarea").jqBootstrapValidation(
                    {
                        preventSubmit: true,
                        submitError: function($form, event, errors) {
                            // Here I do nothing, but you could do something like display 
                            // the error messages to the user, log, etc.
							alert("Not Valid!!");
                        },
                        submitSuccess: function($form, event) {
                            alert("OK");
                        },
                        filter: function() {
                            return $(this).is(":visible");
                        }
                    }
                );
            });
		</script>
	</head>
	<body>
		<nav class="navbar navbar-default" role="navigation">
			<div class="container-fluid">
				<div class="navbar-header">
					<button class="navbar-toggle collapsed" type="button" data-toggle="collapse" data-target="#mainnav" aria-expanded="false">
						<span class="sr-only">Navigation Toggle</span>
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
					</button>
					<a class="navbar-brand" href="#">K</a>
				</div>
		</nav>
		<div class="container-fluid">
			<div class="panel panel-primary">
				<div class="panel-heading">
					<h3 class="panel-title">Form Name</h3>
				</div>
				<div class="panel-body">
					<div class="panel panel-default">
						<div class=btn-group" role="group" aria-label="true">
							<div class="btn-toolbar" role="toolbar" aria-label="true">
								<button type="button" class="btn btn-default btn-sm"><span class="glyphicon glyphicon-repeat" aria-hidden="false"></span></button>
							</div>
						</div>
					</div>
					<div class="panel panel-default">
						<div class="panel-body">
							<ul class="nav nav-tabs">
								<li><a href="#first-tab" data-toggle="tab">Main<i class="fa"></i></a></li>
							</ul>
							<form class="form-inline" id="accountForm" method="post" class="form-horizontal">
								<div class="tab-content">
									<div class="tab-pane" id="first-tab">
										<!-- INPUT that need to be validated... -->
										<div class="input-group input-group-sm col-xs-12">
											<span class="input-group-addon" id="sizing-addon3">Serial Number (Only Accept Numbers)</span>
											<input 
												type="text" 
												data-validation-regex-regex="^[0-9]*$" 
												data-validation-regex-message="Only Numbers" 
												class="form-control" 
												placeholder="Serial Number" 
												aria-describedby="sizing-addon3"
											/>
										</div>
										<button type="submit" class="btn btn-primary">Test Validation <i class="icon-ok icon-white"></i></button>
									</div>
								</div>	
							</form>
						</div>
					</div>
				</div>
			</div>
		</div>
	</body>
</html>

我看到了两个问题:-

在下一行中,注意div类后面缺少一个引号

<div class=btn-group" role="group" aria-label="true">

第二个问题是jqBootstrapValidation要求您为父div定义控制组类。因此,添加以下内容应该有效:-

<div class="control-group tab-pane" id="first-tab"> 

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width, initial-scale=1">
		<title>Test Files</title>
		<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.css" rel="stylesheet">
		<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
      
		<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
		<script src="https://cdnjs.cloudflare.com/ajax/libs/jqBootstrapValidation/1.3.7/jqBootstrapValidation.min.js"></script>
		<script>
			$(function() {
                $("input,select,textarea").jqBootstrapValidation(
                    {
                        preventSubmit: true,
                        submitError: function($form, event, errors) {
                            // Here I do nothing, but you could do something like display 
                            // the error messages to the user, log, etc.
							alert("Not Valid!!");
                        },
                        submitSuccess: function($form, event) {
                            alert("OK");
                        },
                        filter: function() {
                            return $(this).is(":visible");
                        }
                    }
                );
            });
		</script>
	</head>
	<body>
		<nav class="navbar navbar-default" role="navigation">
			<div class="container-fluid">
				<div class="navbar-header">
					<button class="navbar-toggle collapsed" type="button" data-toggle="collapse" data-target="#mainnav" aria-expanded="false">
						<span class="sr-only">Navigation Toggle</span>
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
					</button>
					<a class="navbar-brand" href="#">K</a>
				</div>
		</nav>
		<div class="container-fluid">
			<div class="panel panel-primary">
				<div class="panel-heading">
					<h3 class="panel-title">Form Name</h3>
				</div>
				<div class="panel-body">
					<div class="panel panel-default">
						<div class="btn-group" role="group" aria-label="true">
							<div class="btn-toolbar" role="toolbar" aria-label="true">
								<button type="button" class="btn btn-default btn-sm"><span class="glyphicon glyphicon-repeat" aria-hidden="false"></span></button>
							</div>
						</div>
					</div>
					<div class="panel panel-default">
						<div class="panel-body">
							<ul class="nav nav-tabs">
								<li><a href="#first-tab" data-toggle="tab">Main<i class="fa"></i></a></li>
							</ul>
							<form class="form-inline" id="accountForm" method="post" class="form-horizontal">
								<div class="tab-content">
									<div class="control-group tab-pane" id="first-tab">
										<!-- INPUT that need to be validated... -->
										<div class="input-group input-group-sm col-xs-12">
											<span class="input-group-addon" id="sizing-addon3">Serial Number (Only Accept Numbers)</span>
											<input 
												type="text" 
												data-validation-regex-regex="^[0-9]*$" 
												data-validation-regex-message="Only Numbers" 
												class="form-control" 
												placeholder="Serial Number" 
												aria-describedby="sizing-addon3"
											/>
										</div>
										<button type="submit" class="btn btn-primary">Test Validation <i class="icon-ok icon-white"></i></button>
									</div>
								</div>	
							</form>
						</div>
					</div>
				</div>
			</div>
		</div>
	</body>
</html>