2016-07-23 5 views
1

Ich möchte versuchen, keine neue mein Login nach dem Benutzer ihren Benutzernamen & Passwort eingeben. Ich benutze auf Senden auf Formularfeld wie das, um die gleiche Funktion ohne zu erneuern zurückzugeben. onsubmit="return login();Wie benutze ich das Formular für den Code-Signierer?

Ansicht

<?php $this->load->view('header');?> 
    <body> 
     <nav class="navbar navbar-default"> 
      <div class="navbar-header"> 
       <a href="#" class="navbar-brand">Store</a> 
      </div> 
     </nav> 
     <div class="container"> 
      <div class="row"> 
       <div class="col-md-4"></div> 
       <div class="col-md-4"> 
        <div class="panel panel-default login"> 
         <div class="panel-heading">Sign In</div> 
         <div class="panel-body">  
          <form data-toggle="validator" role="form" method="POST" onsubmit="return login();"> 
           <div class="form-group"> 
            <label for="username">Username</label> 
            <div class="input-group"> 
             <span class="input-group-addon"><span class="glyphicon glyphicon-user"></span></span> 
             <input type="text" class="form-control" name="username" id="username" placeholder="Username" required> 
            </div> 
           </div> 
           <div class="form-group"> 
            <label for="password">Password</label> 
            <div class="input-group"> 
             <span class="input-group-addon"><span class="glyphicon glyphicon-star"></span></span> 
             <input type="password" class="form-control" id="password" placeholder="Password" required> 
            </div> 
           </div>  
           <div class="alert alert-danger text-center" style="display:none;" id="error"> 
            <p>Invalid username or password !!</p> 
           </div>  
           <button type="submit" class="btn btn-lg btn-success btn-block" id="login"><span class="glyphicon glyphicon-lock frm-general"></span>Login</button> 
          </form> 
         </div> 
        </div> 
       </div> 
      </div> 
     </div> 
     <script src="<?=base_url('assets/js/jQuery-2.1.4.min.js');?>"></script> 
     <script src="<?=base_url('assets/js/bootstrap.min.js');?>"></script> 
     <script src="<?=base_url('assets/js/validator.min.js');?>"></script> 
     <script src="<?=base_url('assets/js/view/login.js')?>"></script> 
    </body> 

</html> 

Ajax

$(function(){ 
    $('#login').submit(function(e){ 
     var username = $('#username').val(); 
     var password = $('#password').val(); 
     URL_GET_ACCESS = BASE_URL+"Login_controller/login"; 
     $.ajax({ 
      url: URL_GET_ACCESS, 
      type: 'POST', 
      data: 'username='+username+'&password='+password; 
     }).done(function(ans){ 
      console.log(resp); 
      if(ans === '0'){ 
       $('#error').show().delay(2000).fadeOut(); 
      }else if(ans === '1'){ 
       window.location.href='<?php echo base_url() ?>home/'; 
      }else{ 
       window.location.href='<?php echo base_url() ?>home/'; 
      } 
     }); 
    }); 
    return false; 
}); 
+0

Hallo Diana, ich sehe du bist neu in SO. Wenn Sie der Meinung sind, dass eine Antwort das Problem gelöst hat, markieren Sie es als "akzeptiert", indem Sie auf das grüne Häkchen klicken. Dies hilft, den Fokus auf ältere SO zu richten, die immer noch keine Antworten haben. – zJorge

Antwort

0

Ich gehe davon aus das Problem ist, dass die Vorlage ausgelöst wird und Sie auf die URL, indem Sie Ihre Form Aktion (in diesem Fall selbst definiert unter). Um dies zu verhindern, verwenden Sie jQuery e.preventDefault();, sobald Sie Ihre Übermittlungsfunktion starten.

Eine andere Lösung, die ich häufig verwenden, ist kein einreichen Taste, sondern nur eine Spanne (<span id='iWillSubmit' class='iLookLikeAButton'>) als Schaltfläche gestylt und dann die Funktion einer .on('click') an diesem Spanne Element einreichen befestigen.