2017-03-02 58 views
2

我有一个在引导程序中制作的向导窗体,我需要验证窗体向导的每一步,现在可以如何使用空输入转到下一步。而且,由于机器人等问题存在很多问题,验证表单上每个步骤的最佳方法是什么?向导窗体验证

下面是摘录:

$(document).ready(function() { 
 
     //Initialize tooltips 
 
     $('.nav-tabs > li a[title]').tooltip(); 
 
     
 
     //Wizard 
 
     $('a[data-toggle="tab"]').on('show.bs.tab', function (e) { 
 
    
 
      var $target = $(e.target); 
 
     
 
      if ($target.parent().hasClass('disabled')) { 
 
       return false; 
 
      } 
 
     }); 
 
    
 
     $(".next-step").click(function (e) { 
 
    
 
      var $active = $('.wizard .nav-tabs li.active'); 
 
      $active.next().removeClass('disabled'); 
 
      nextTab($active); 
 
    
 
     }); 
 
     $(".prev-step").click(function (e) { 
 
    
 
      var $active = $('.wizard .nav-tabs li.active'); 
 
      prevTab($active); 
 
    
 
     }); 
 
    }); 
 
    
 
    function nextTab(elem) { 
 
     $(elem).next().find('a[data-toggle="tab"]').click(); 
 
    } 
 
    function prevTab(elem) { 
 
     $(elem).prev().find('a[data-toggle="tab"]').click(); 
 
    }
.wizard { 
 
     margin: 20px auto; 
 
     background: #fff; 
 
    } 
 
    
 
     .wizard .nav-tabs { 
 
      position: relative; 
 
      margin: 40px auto; 
 
      margin-bottom: 0; 
 
      border-bottom-color: #e0e0e0; 
 
     } 
 
    
 
     .wizard > div.wizard-inner { 
 
      position: relative; 
 
     } 
 
    
 
    .connecting-line { 
 
     height: 2px; 
 
     background: #e0e0e0; 
 
     position: absolute; 
 
     width: 80%; 
 
     margin: 0 auto; 
 
     left: 0; 
 
     right: 0; 
 
     top: 50%; 
 
     z-index: 1; 
 
    } 
 
    
 
    .wizard .nav-tabs > li.active > a, .wizard .nav-tabs > li.active > a:hover, .wizard .nav-tabs > li.active > a:focus { 
 
     color: #555555; 
 
     cursor: default; 
 
     border: 0; 
 
     border-bottom-color: transparent; 
 
    } 
 
    
 
    span.round-tab { 
 
     width: 70px; 
 
     height: 70px; 
 
     line-height: 70px; 
 
     display: inline-block; 
 
     border-radius: 100px; 
 
     background: #fff; 
 
     border: 2px solid #e0e0e0; 
 
     z-index: 2; 
 
     position: absolute; 
 
     left: 0; 
 
     text-align: center; 
 
     font-size: 25px; 
 
    } 
 
    span.round-tab i{ 
 
     color:#555555; 
 
    } 
 
    .wizard li.active span.round-tab { 
 
     background: #fff; 
 
     border: 2px solid #5bc0de; 
 
     
 
    } 
 
    .wizard li.active span.round-tab i{ 
 
     color: #5bc0de; 
 
    } 
 
    
 
    span.round-tab:hover { 
 
     color: #333; 
 
     border: 2px solid #333; 
 
    } 
 
    
 
    .wizard .nav-tabs > li { 
 
     width: 25%; 
 
    } 
 
    
 
    .wizard li:after { 
 
     content: " "; 
 
     position: absolute; 
 
     left: 46%; 
 
     opacity: 0; 
 
     margin: 0 auto; 
 
     bottom: 0px; 
 
     border: 5px solid transparent; 
 
     border-bottom-color: #5bc0de; 
 
     transition: 0.1s ease-in-out; 
 
    } 
 
    
 
    .wizard li.active:after { 
 
     content: " "; 
 
     position: absolute; 
 
     left: 46%; 
 
     opacity: 1; 
 
     margin: 0 auto; 
 
     bottom: 0px; 
 
     border: 10px solid transparent; 
 
     border-bottom-color: #5bc0de; 
 
    } 
 
    
 
    .wizard .nav-tabs > li a { 
 
     width: 70px; 
 
     height: 70px; 
 
     margin: 20px auto; 
 
     border-radius: 100%; 
 
     padding: 0; 
 
    } 
 
    
 
     .wizard .nav-tabs > li a:hover { 
 
      background: transparent; 
 
     } 
 
    
 
    .wizard .tab-pane { 
 
     position: relative; 
 
     padding-top: 50px; 
 
    } 
 
    
 
    .wizard h3 { 
 
     margin-top: 0; 
 
    } 
 
    
 
    @media(max-width : 585px) { 
 
    
 
     .wizard { 
 
      width: 90%; 
 
      height: auto !important; 
 
     } 
 
    
 
     span.round-tab { 
 
      font-size: 16px; 
 
      width: 50px; 
 
      height: 50px; 
 
      line-height: 50px; 
 
     } 
 
    
 
     .wizard .nav-tabs > li a { 
 
      width: 50px; 
 
      height: 50px; 
 
      line-height: 50px; 
 
     } 
 
    
 
     .wizard li.active:after { 
 
      content: " "; 
 
      position: absolute; 
 
      left: 35%; 
 
     } 
 
    }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script> 
 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> 
 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous"> 
 

 
<div class="container"> 
 
    \t <div class="row"> 
 
    \t \t <section> 
 
      <div class="wizard"> 
 
       <div class="wizard-inner"> 
 
        <div class="connecting-line"></div> 
 
        <ul class="nav nav-tabs" role="tablist"> 
 
    
 
         <li role="presentation" class="active"> 
 
          <a href="#step1" data-toggle="tab" aria-controls="step1" role="tab" title="Step 1"> 
 
           <span class="round-tab"> 
 
            <i class="glyphicon glyphicon-folder-open"></i> 
 
           </span> 
 
          </a> 
 
         </li> 
 
    
 
         <li role="presentation" class="disabled"> 
 
          <a href="#step2" data-toggle="tab" aria-controls="step2" role="tab" title="Step 2"> 
 
           <span class="round-tab"> 
 
            <i class="glyphicon glyphicon-pencil"></i> 
 
           </span> 
 
          </a> 
 
         </li> 
 
         <li role="presentation" class="disabled"> 
 
          <a href="#step3" data-toggle="tab" aria-controls="step3" role="tab" title="Step 3"> 
 
           <span class="round-tab"> 
 
            <i class="glyphicon glyphicon-picture"></i> 
 
           </span> 
 
          </a> 
 
         </li> 
 
    
 
         <li role="presentation" class="disabled"> 
 
          <a href="#complete" data-toggle="tab" aria-controls="complete" role="tab" title="Complete"> 
 
           <span class="round-tab"> 
 
            <i class="glyphicon glyphicon-ok"></i> 
 
           </span> 
 
          </a> 
 
         </li> 
 
        </ul> 
 
       </div> 
 
    
 
       <form role="form"> 
 
        <div class="tab-content"> 
 
         <div class="tab-pane active" role="tabpanel" id="step1"> 
 
          <h3>Step 1</h3> 
 
          <p>This is step 1</p> 
 
          <ul class="list-inline pull-right"> 
 
           <li><button type="button" class="btn btn-primary next-step">Save and continue</button></li> 
 
          </ul> 
 
         </div> 
 
         <div class="tab-pane" role="tabpanel" id="step2"> 
 
          <h3>Step 2</h3> 
 
          <p>This is step 2</p> 
 
          <ul class="list-inline pull-right"> 
 
           <li><button type="button" class="btn btn-default prev-step">Previous</button></li> 
 
           <li><button type="button" class="btn btn-primary next-step">Save and continue</button></li> 
 
          </ul> 
 
         </div> 
 
         <div class="tab-pane" role="tabpanel" id="step3"> 
 
          <h3>Step 3</h3> 
 
          <p>This is step 3</p> 
 
          <ul class="list-inline pull-right"> 
 
           <li><button type="button" class="btn btn-default prev-step">Previous</button></li> 
 
           <li><button type="button" class="btn btn-default next-step">Skip</button></li> 
 
           <li><button type="button" class="btn btn-primary btn-info-full next-step">Save and continue</button></li> 
 
          </ul> 
 
         </div> 
 
         <div class="tab-pane" role="tabpanel" id="complete"> 
 
          <h3>Complete</h3> 
 
          <p>You have successfully completed all steps.</p> 
 
         </div> 
 
         <div class="clearfix"></div> 
 
        </div> 
 
       </form> 
 
      </div> 
 
     </section> 
 
     </div> 
 
    </div>

回答

0

停止一个机器人被称为蜂蜜垃圾壶一个简单而有效的方法。为了实现这一点,你可以在表单的最后添加一个额外的输入并将其隐藏在css中。使用PHP(建议进行表单验证!),您可以检查该字段是否为空。如果它不是空的,那么你知道一个机器人已经把数据输入到输入中,因为一个机器人会尝试并通过填充所有的字段来避免任何验证。在JavaScript或jQuery中的验证是一个比必须使用的功能更多的功能,因为它可以是在用户浏览器中关闭。

+0

查看此资源获取更多信息[链接](http://jennamolby.com/how-to-prevent-form-spam-by-using-the-honeypot-technique/) –