Javascript 手动将表单字段设置为$invalid
所以我是AngularJS的新手,我想做一份登记表 我要做的是检查用户名是否被占用。基本上,我向我的PHP文件发送一个请求,然后根据我发布的用户名返回Javascript 手动将表单字段设置为$invalid,javascript,angularjs,Javascript,Angularjs,所以我是AngularJS的新手,我想做一份登记表 我要做的是检查用户名是否被占用。基本上,我向我的PHP文件发送一个请求,然后根据我发布的用户名返回0或1: $http({ method: "POST", url: "/assets/scripts/checkUsername.php", data: { username: $scope.input_username } }).success(function (data) { if (d
0
或1
:
$http({
method: "POST",
url: "/assets/scripts/checkUsername.php",
data: {
username: $scope.input_username
}
}).success(function (data) {
if (data > 0) {
$(".userExists").show();
$scope.loginForm.username.$setValidity("username", true);
} else {
$(".userExists").hide();
$scope.loginForm.username.$setValidity("username", false);
}
});
但由于某些原因,submit按钮仍然会启用,就像什么都没有发生过一样
我也试着这样做:
$scope.loginForm.username.$invalid = false;
但我的结果没有任何变化
这是我的HTML(我省略了与密码等无关的字段):
格布鲁伊克斯纳姆酒店
我不想在因弗伦见到你!
Deze gebruikersnaam是bezet!
登记员
当抛出错误时,按钮如何不禁用?以及如何修复它。。。谢谢。您什么时候发送此请求?@dfsq用户名更改时您的代码显示正确-如果没有上下文,我猜您看到的范围是错误的。如果您可以在jsbin中重现这一点,这将有所帮助。下面是一个使用代码中必要位的工作模型:
<form role="form" ng-submit="login()" name="loginForm" novalidate>
<div class="form-group">
<label for="email">Gebruikersnaam</label>
<input type="text" class="form-control" name="username" required="true" ng-model="input_username" style=" background-image: linear-gradient(#009688, #009688), linear-gradient(#d2d2d2, #d2d2d2);" id="inputDefault" placeholder="Voer jouw gebruikersnaam in." />
<div class="talkbubble error" ng-show="!loginForm.username.$pristine && loginForm.username.$invalid"> Je moet wel een gebruikersnaam invullen! </div>
<div class="talkbubble error userExists" style="display: none;"> Deze gebruikersnaam is bezet! </div>
</div>
<button type="submit" ng-disabled="loginForm.$invalid" class="btn btn-default btn-raised" style="background-color: #009688; color:#fff;">Registreren</button>
</form>