- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个基本的登录表单,当加载页面并提交表单时,表单将重置。
我不断收到以下错误:
TypeError: Cannot read property '$setPristine' of undefined
at new <anonymous>
这是文件(html 文件是 Angularjs 模板):
javascript
.controller('SigninController' ,['$scope','$firebaseAuth',function($scope,$firebaseAuth){
$scope.user = {email:"",password:""};
$scope.loginForm.$setPristine();
$scope.SignIn = function(){
var ref = new Firebase("https://tipandtrip.firebaseio.com/");
ref.authWithPassword({
}, function(error, authData) {
if (error) {
console.log("Login Failed!", error);
$scope.user = {email:"",password:""};
$scope.loginForm.$setPristine();
} else {
console.log("Authenticated successfully with payload:", authData);
$scope.email = "blass";
$scope.password = "";
$scope.loginForm.$setPristine();
}
});
};
}])
<div class="container" ng-controller="SigninController" >
<div class="row">
<div class="col-xs-12">
<ul class="breadcrumb">
<li><a href="index.html">Home</a></li>
<li class="active">Login</li>
</ul>
</div>
<div class="col-xs-12">
<h3>Login</h3>
<hr>
</div>
</div>
<div class="row row-content">
<div class="col-xs-12 col-sm-6 col-sm-offset-3">
<form class="form-horizontal" name="loginForm" ng-submit="SignIn()" novalidate>
<div class="form-group" ng-class="{ 'has-error has-feedback' : loginForm.email.$invalid && !loginForm.email.$pristine }">
<label for="name" class="col-sm-2 control-label">Email</label>
<div class="col-sm-10">
<input type="email" class="form-control" id="emailid" name="email" placeholder="Email" ng-model="user.email" required>
</div>
<span ng-show="loginForm.email.$invalid && !loginForm.email.$pristine" class="glyphicon glyphicon-remove form-control-feedback" aria-hidden="true"></span>
<span ng-show="(loginForm.email.$invalid || loginForm.email.$error.required) && !loginForm.email.$pristine" class="help-block">Enter a valid email address.</span>
</div>
<div class="form-group" ng-class="{ 'has-error' : loginForm.password.$error.required && !loginForm.password.$pristine }">
<label for="name" class="col-sm-2 control-label">Password</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="password" name="password" placeholder="Enter Your Passowrd" ng-model="user.password" required>
</div>
<span ng-show="loginForm.password.$error.required && !loginForm.password.$pristine" class="help-block">Your Password is required.</span>
</div>
<div class="form-group" ng-class="{ 'has-error' : invalidChannelSelection }">
<div class="checkbox col-sm-5 col-sm-offset-2">
<label class="checkbox-inline">
<input type="checkbox"
ng-model="user.remember">
<strong>Remember me?</strong>
</label>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-primary" ng-disabled="loginForm.$invalid">Login</button>
</div>
</div>
<div class=" col-sm-12 alert alert-info text-center" id="dbalert_log"></div>
</form>
</div>
<div class="col-xs-12 col-sm-3">
</div>
</div>
<div class="col-xs-12">
<h3>Reset Password</h3>
<hr>
</div>
<div class="row row-content">
<div class="col-xs-12 col-sm-6 col-sm-offset-3">
<form class="form" role="form" id="resetpass_form">
<div class="form-group">
<label for="emailReset" class="col-sm-3 control-label">Email</label> <div class="col-sm-9">
<input type="email" class="form-control" id="email_reset" name="email_reset" placeholder="Email">
</div>
</div>
<div class="form-group">
<div class="col-sm-10">
<button type="submit" class="btn btn-primary">Reset Password</button>
</div>
</div>
<div class=" col-sm-12 alert alert-info text-center" id="dbalert_reset"></div>
</form>
</div>
<div class="col-xs-12 col-sm-3">
</div>
</div>
</div>
谢谢。
最佳答案
问题是您在实际创建 loginForm
之前调用了 $setPrestine()
。
尝试这样做
<form class="form-horizontal" name="loginForm" ng-submit="SignIn()" ng-init="initFunc()" novalidate>
在你的 JS 代码中
$scope.initFunc = function(){
$scope.user = {email:"",password:""};
$scope.loginForm.$setPristine();
}
检查这个jsFiddle
关于javascript - angularjs $setPristine 得到错误 : TypeError: $scope. $setPristine 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34574211/
我正在尝试创建一个基本的登录表单,当加载页面并提交表单时,表单将重置。 我不断收到以下错误: TypeError: Cannot read property '$setPristine' of und
我有一个包含多个子表单的父表单(例如 http://jsfiddle.net/riemersebastian/9zr00ear/3/ ) 当用户更改任何字段时,相应的子表单和父表单都会获取类 ng-d
我正在尝试对表单中的单个输入字段使用 setPristine 方法。有多种方法可以对整个表单执行此操作,但我只想对表单中的一个输入字段执行此操作。我该怎么做? 我这样试过 $scope.merchan
**** 注意我删掉了一些其他功能,以便可以更快地阅读代码。我无法清除表格。当我单击具有取消功能的按钮时。我以为我可以设置一个默认表单,但这并没有什么不同。
First Name This is required.
提交表单后,我一直在努力重置表单。有人发布了此Here我想让它发挥作用但没有成功。这是我的My Code Example . $scope.form.$setPristine(); 未将 Pristi
我发现下面的代码很奇怪。 dataSvc.saves 回调之后,vm.bookDetails = {};和 vm.bookForm.$setPristine 的用途? angular.module('
尝试重置表单时,出现错误无法读取未定义的属性“$setPristine”。 我的 Controller : formApp.controller('FormController', ['$scope'
我正在尝试使用 $setPristine() 重置表单。 $scope.resetDataEntryForm = function() { $scope.dataEntryForm.$setP
我想做简单的事情,清理 $scope.user 字段,并且不会因此而出现错误。 if ($scope.contactForm.$valid) { $scope.user = {}; $
当我提交表单时,我希望某些输入元素为 $setPristine。因为在提交表单后,我将清空绑定(bind)到输入元素的模型,以防用户完全可以再次输入新内容。但是,一旦我清空模型,输入元素也会清空,因此
任何人都可以帮助使用随附的 Plunker 吗?? 只需提交仅输入一个必填字段的表单。这将触发验证错误。然后重置同时调用 setPristine 和 setUntouched 的表单 - 两者都应该重
我正在尝试使用 Angular 的内置表单函数,特别是 setPristine() 来清除用户提交的表单。我的 Controller 可以访问 $scope.newForm(我的表单)及其所有方法,但
当我运行以下代码来重置表单时出现错误: $scope.saveFormData = function () { $scope.testForm.$setPristine();
我有一个带有密码字段的表单,我为其实现了一个password 指令。 我目前只实现了 1 项验证,但我有一个现场验证列表。 我希望它们分别显示为红色或绿色,具体取决于有效/无效 - 当用户开始在字段中
我正在尝试将当前的 api 调用写入可在 ApiService 工厂内重用的工厂。但是,我似乎无法清除表格。 那么,我能做些什么来使clearForm函数按原样工作。 S
我有以下代码: 这是有效的,当我点击一个提交类型的按钮时,就会调用 modalSubmit 函数。 但是我想在我的 Controller 中做到这一点: $scope.mod
我有一个表单不允许您选中第一个条目上的复选框,这很奇怪。这几乎就像它没有记录点击一样。 但是,如果您提交表单并在提交第一个表单后尝试选中相同的复选框,则它允许您选中这些复选框。这是为什么? 这就是我的
我正在用 Angular Material 制作一个简单的表格来添加帖子,我还有一个取消按钮来清除表格。我尝试使用 $setPristine() 但在调用 clearForm 函数后输入字段仍显示为红
当我尝试使用 TypeScript 中的 form.$setPristine 时,它不起作用并且调试显示 form 未定义。根据我的阅读,$scope.formName.$setPristine()
我是一名优秀的程序员,十分优秀!