手动将表单字段设置为$ invalid

时间:2015-11-14 13:57:31

标签: javascript angularjs

所以,我是AngularJS的新手,我正在尝试制作注册表。

我要做的是检查用户名是否被占用。所以基本上,我向我的PHP文件发送请求,然后根据我发布的用户名返回01

$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);
    }
});

但由于某种原因,提交按钮仍然可以发生任何事情。

我也试过这样做:

 $scope.loginForm.username.$invalid = false;

但我的结果没有任何改变。

这是我的HTML(我省略了不相关的字段,如密码等。):

<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>

如何在抛出错误时按钮不会被禁用?以及如何解决它...谢谢。

0 个答案:

没有答案