我有一个用户登录和注册表单。我认为当前显示的默认值是我的浏览器已缓存的值。我正在尝试找出如何以编程方式删除它,以便我的输入框为空。当我刷新页面时,我得到下面的图像。我尝试将框的 $scope 值设置为空字符串,但是刷新页面时这不起作用。
我应该怎么做才能让输入框为空。
这是我的 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 与开发人员斗争,因此我们没有足够好的解决方案来防止自动填充。他们说用户应该在浏览器设置中禁用网站的自动填充;
一种可能的方法,前段时间已经测试过 - 创建指令 Prevent-autofill,它将在链接时更改输入类型并在 keyDown 上将其重置回
关于javascript - 将默认字符串设置为空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39414803/