jqBootstrapValidation 不工作,总是 return 有效值;
jqBootstrapValidation not working, always return valid value;
不知道为什么我的验证不起作用,尝试使用各种验证器但结果总是 return 有效..
需要第二只眼睛来发现错误..
第一次使用代码片段,希望我下面的代码片段是正确的..
<!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>
我看到了 2 个问题:-
在下一行中,请注意您在 div class 之后缺少引号 "。不过这不是主要问题
<div class=btn-group" role="group" aria-label="true">
第二个问题是 jqBootstrapValidation 要求您将控制组 class 定义到父级 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>
不知道为什么我的验证不起作用,尝试使用各种验证器但结果总是 return 有效..
需要第二只眼睛来发现错误..
第一次使用代码片段,希望我下面的代码片段是正确的..
<!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>
我看到了 2 个问题:-
在下一行中,请注意您在 div class 之后缺少引号 "。不过这不是主要问题
<div class=btn-group" role="group" aria-label="true">
第二个问题是 jqBootstrapValidation 要求您将控制组 class 定义到父级 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>