这是我的 HTML 表单:
<form class="form-login" name="loginForm" novalidate ng-submit="login()">
<fieldset>
<h2>Login</h2>
<input type="text" required class="input-block-level" placeholder="Username" ng-model="username" name="username" tabindex="1" xs-input-sync>
<input type="password" required class="input-block-level" placeholder="Password" ng-model="password" name="password" tabindex="2" xs-input-sync>
</fieldset>
</form>
这是提交表单时调用的控制器方法:
$scope.login = function() {
$http.post($scope.serviceUrls.getAuthenticationUrl($scope.username), {
"password": $scope.password
}).success(function(data, status, headers) {
}).error(function(data, status) {
});
return false;
}
到目前为止一切正常。但由于浏览器仅在您在表单上设置了属性时才显示本机“记住密码”对话框action="/"
,所以我也将它添加到我的表单中。
添加action="/"
表单后,无论我尝试什么,都会在按下 Enter 键或登录按钮时提交。我也尝试将$event
参数添加到 htmllogin
函数调用中,然后执行$event.preventDefault();
但仍然不行。
同样的事情发生在 url 上,例如:
<a class="xs-btn edit-btn" ng-click="toggleEditMode($event)"></a>
我试过:$event.preventDefault();
, return false;
, 添加href=""
, href="#"
. 但是没有任何工作,我总是被重定向到站点的根目录。唯一有效的是href="javascript:void(0);"
.
知道我做错了什么吗?整个应用程序似乎有问题。