2014-12-16 3 views
1

У меня есть форма для входа в систему следующим образом. login Controller вызывается, когда нажата кнопка входа в систему, и она работает нормально. Мне нужна такая же функция, которая вызывается при нажатии клавиши «Enter» после ввода имени пользователя и пароля.Отправить форму при нажатии клавиши в Угловом JS

<form class="form-horizontal"> 
    <fieldset> 
    <div class="form-group"> 
    <input type="text" 
     class="form-control input-lg input-round text-center" 
     placeholder="Username" 
     ng-model="uservals"> 
    </div> 
    <div class="form-group"> 
    <input type="password" 
     class="form-control input-lg input-round text-center" 
     placeholder="Password" 
     ng-model="passvals"> 
    </div> 
    <div class="form-group"> 
    <a href="#/" class="btn btn-primary btn-lg btn-round btn-block text-center" ng-click="log_me()">Log in</a> 
    </div> 
    </fieldset> 
    </form> 

Контроллер

var mysession = ''; 
function loginController($scope, $http, $cookieStore, $location) { 
$scope.sess_id = mysession; 
var token = $cookieStore.get('token'); 
var conId = $cookieStore.get('Cont_Id'); 
var exId = $cookieStore.get('ex_Id'); 
$scope.log_me = function() { 
    $scope.login_me = []; 
    var login_un = $scope.uservals; 
    var login_pwd = $scope.passvals; 
    var logs_me = "http://www.vb.com/login.html?username=" + login_un + "&password=" + login_pwd; 
    $http.get(logs_me) 
     .success(function(response) { 
      $cookieStore.put('token', response.token); 
      $cookieStore.put('ex_Id', response.ExId); 
      $cookieStore.put('Cont_Id', response.contactId); 
      $cookieStore.put('email', response.email); 
      $cookieStore.put('name', response.name); 
      mysession = response.ss_id; 
      if (response.status == "failure") { 
       $('.login_error').show(); 
       $('.login_error').html('Invalid username or password'); 
       $('.login_error').delay(4000).fadeOut(); 
       $('.loading').hide(); 
      } else { 
       $('.page-signin').hide(); 
       $('.signin-header').hide(); 
       $location.path('/dashboard'); 
       } 
       }); 
     } 
    } 
+0

Вы можете увидеть мой ответ с рабочей демонстрацией [здесь] (http://stackoverflow.com/questions/27498666/submit-form-while-key-press-in-angular-js/27498701#27498701) –

+0

Возможный дубликат из [Отправить форму при нажатии Enter с AngularJS] (http://stackoverflow.com/questions/15417125/submit-form-on-pressing-enter-with-angularjs) – hon2a

ответ

4

Demo

Измените форму, как это;

<form class="form-horizontal" ng-submit="log_me()"> 

И затем обновите кнопку для отправки кнопки, как показано ниже;

<input type="submit" class="btn btn-primary btn-lg btn-round btn-block text-center" value="Log in"/> 

Это автоматически отправит вашу форму, когда вы нажмете Enter.

+0

Спасибо за ваше решение. Но будет ли он работать при нажатии кнопки, если я удалю ng-click = "login_me()" из кнопки отправки? Я хочу, чтобы он работал как по-разному. – Shareer

+0

Да, это сработает. Потому что это кнопка отправки, и она вызывает событие отправки формы. И ng-submit дескрипторы, которые –

Смежные вопросы