javascript - 将默认字符串设置为空白

标签 javascript angularjs

我有一个用户登录和注册表单。我认为当前显示的默认值是我的浏览器已缓存的值。我正在尝试找出如何以编程方式删除它,以便我的输入框为空。当我刷新页面时,我得到下面的图像。我尝试将框的 $scope 值设置为空字符串,但是刷新页面时这不起作用。 enter image description here

我应该怎么做才能让输入框为空。

这是我的 HTML 代码

<div class="root" ng-controller="userController"> 
    <div class=user>
        <form name="login_form" >
            <h2 class>Login</h2>
            <h3 class = "login_page">UserName</h3>
            <input ng-model="user" type="text" ng-minlength="1" required>
            <h3 class = "login_page">Password</h3>
            <input ng-model="password" type="password" name="password" ng-minlength="4" required>
            <input type="submit" value="Login" ng-click="login()" >
            <div ng-if ="login_form.$submitted" ng-messages="login_form.password.$error" style="color:maroon" role="alert">
                <div ng-message="minlength">Your field is too short</div>
            </div>
            <p ng-if="error">Username or login is incorrect</p>
        </form>
    </div>
    <div class=user>
        <form name = "register_form">
            <h2 class>Register</h2>
            <h3 class = "login_page">UserName</h3>
            <input ng-model="reg.name" type="text" required>
            <h3 class = "login_page">Password</h3>
            <input ng-model="reg.password" type="password">
            <input type="submit" value="Register" ng-click="register()" required >
            <p ng-if="small">Password must be at least 5 chars long</p>
            <p ng-if="duplicate">That user name is taken, please choose another</p>
            <p ng-if="correct">Registration Succesfull</p>
        </form>
    </div>
</div>

这是我的 js Controller 代码

app.controller('userController', ['$scope', '$location', 'userFactory',  function($scope, $location, userFactory){
    index = function(){
        userFactory.set_name(function(returned_data){
            $scope.reg = {name:''};
            erase();
        })
    }
    index();
    $scope.login = function(){
        userFactory.login($scope.user, $scope.password, function(sendUser){
            if(!sendUser.data.error){
                $location.url('/logged_in');
            }else {
                $scope.error = true;
                erase();
            }       
        })  
    }
    $scope.register = function(){
        $scope.small = false;
        if($scope.reg.password.length < 5){
            $scope.small = true;
        }else {
            userFactory.register($scope.reg.name, $scope.reg.password, function(sendUser){
            console.log(sendUser)
            $scope.duplicate = false;
            $scope.correct = false;
            if(sendUser.data.error){
                $scope.duplicate = true;
                erase();
            }else {
                $scope.correct = true;
                erase();
            }
        })
        }
    }
    erase = function(){
        $scope.reg.name = "";
        $scope.reg.password = "";
        $scope.user = "";
        $scope.password = "";
    }

}]);

我还在用户的输入标签中尝试了 ng-init="user=''"。这也不起作用

最佳答案

浏览器 vendor 与开发人员斗争,因此我们没有足够好的解决方案来防止自动填充。他们说用户应该在浏览器设置中禁用网站的自动填充;

Disabling Chrome Autofill

一种可能的方法,前段时间已经测试过 - 创建指令 Prevent-autofill,它将在链接时更改输入类型并在 keyDown 上将其重置回

关于javascript - 将默认字符串设置为空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39414803/

相关文章:

javascript - 如何将 JSON 数据显示到动态输入文本字段中?

javascript - 点击javascript的功能

javascript - 在javascript中计算html var中的元素

javascript - FormData 中的对象数组将 0 个对象传递给 Controller

javascript - Flickr API 加载图像

javascript - 网页动画 API : reset animation on demand

javascript - 变量捕获按钮并将其传递给 Angular 服务

javascript - AngularJS ng-include 作用域

Prerender.io 中用于 SEO 的 AngularJS + Go Revel Web 框架

javascript - 自定义html5音频标签,如何添加音量按钮?