gpt4 book ai didi

javascript - 按回车键时AngularJS表单不提交

转载 作者:行者123 更新时间:2023-12-01 09:54:27 27 4
gpt4 key购买 nike

我正在尝试让一个登录表单在用户按下回车键时提交。单击“登录”按钮时,表单工作正常,但按回车键不起作用,而且会导致奇怪的行为:

  • ng-submit 关联的函数没有被执行
  • 错误消息(登录失败)在按下 enter 后不再显示

这是我的标记:

<form ng-submit="login()" class="login-form">
<div class="alert alert-danger" ng-class="{ 'display-hide': !showError }">
<button class="close" data-close="alert"></button>
<span> Login failed </span>
</div>
<div class="form-group">
<label class="control-label visible-ie8 visible-ie9">Username</label>
<input class="form-control form-control-solid placeholder-no-fix" type="text" autocomplete="off" placeholder="Username" name="username" ng-model="username"/>
</div>
<div class="form-group">
<label class="control-label visible-ie8 visible-ie9">Password</label>
<input class="form-control form-control-solid placeholder-no-fix" type="password" autocomplete="off" placeholder="Password" name="password" ng-model="password"/>
</div>
<div class="form-actions">
<button class="btn btn-success uppercase">Login</button>
</div>
</form>

请注意,我尝试替换 <button...><input type="submit"...>也没有成功。

具有 login() 函数的相应 Controller 如下所示:

.controller('LoginCtrl', ['$rootScope', '$scope', ..., function LoginController ($rootScope, $scope, ...) {
$scope.showError = false;

$scope.login = function()
{
console.log("logging in");
$http({
url: $scope.apiEndpointLogin,
method: 'POST',
data: {'username': this.username, 'password': this.password}
}).then(function(response) {
$scope.showError = false;

[...]
}, function() {
$scope.showError = true;
});

};
}]);

我运行 angular v1.4.0 并使用 angular-ui-router v.0.2.15 进行路由。

感谢您的任何意见,非常感谢。

最佳答案

放这个

 <input type="submit" class="btn btn-success uppercase" value="Login" > 

代替

 <button class="btn btn-success uppercase">Login</button>

表单提交按钮应该是提交类型。

编辑代码:

<form   class="login-form"  ng-submit="login()" >
<div class="alert alert-danger" ng-class="{ 'display-hide': !showError }">
<button class="close" data-close="alert"></button>
<span> Login failed </span>
</div>
<div class="form-group">
<label class="control-label visible-ie8 visible-ie9">Username</label>
<input class="form-control form-control-solid placeholder-no-fix" type="text" autocomplete="off" placeholder="Username" name="username" ng-model="username"/>
</div>
<div class="form-group">
<label class="control-label visible-ie8 visible-ie9">Password</label>
<input class="form-control form-control-solid placeholder-no-fix" type="password" autocomplete="off" placeholder="Password" name="password" ng-model="password"/>
</div>
<div class="form-actions">
<input type="submit" class="btn btn-success uppercase" >
</div>

</form>

同时请检查您的 LoginCtrl 是否位于您的表单 DOM 之上。

编辑代码:

请检查这个Plunker

关于javascript - 按回车键时AngularJS表单不提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31291734/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com