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>