Javascript 提交angularjs后清除表单
嗨,我想在成功完成后清除表单值。我该怎么办Javascript 提交angularjs后清除表单,javascript,angularjs,Javascript,Angularjs,嗨,我想在成功完成后清除表单值。我该怎么办 <div ng-controller="employeelistController as listControl"> <div class="container form-group" ng-controller="addEmployee as addemp"> <form name="frmEmployee" ng-submit="Add(addemp.employee) &am
<div ng-controller="employeelistController as listControl">
<div class="container form-group" ng-controller="addEmployee as addemp">
<form name="frmEmployee" ng-submit="Add(addemp.employee) && frmEmpbloyee.$valid">
<div class="col-lg-4 ctrmain">
<div class="row">
<div class="col-lg-6">
<strong>Employee No</strong>
</div>
<div class="col-lg-6">
<input type="number" id="txtEmpId" ng-model="addemp.employee.employeeid" required class="form-control" />
</div>
</div>
<div class="row">
<div class="col-lg-6">
<strong>FirstName</strong>
</div>
<div class="col-lg-6">
<input type="text" id="txtfirstName" ng-model="addemp.employee.firstname" required class="form-control" />
</div>
</div>
<div class="row">
<div class="col-lg-6">
<strong>LastName</strong>
</div>
<div class="col-lg-6">
<input type="text" id="txtlastName" ng-model="addemp.employee.lastname" required class="form-control" />
</div>
</div>
<div class="row">
<div class="col-lg-6">
<strong>Department</strong>
</div>
<div class="col-lg-6">
<input type="text" id="txtDept" ng-model="addemp.employee.department" required class="form-control" />
</div>
</div>
<div class="row">
<div class="col-lg-6">
<strong>DOB</strong>
</div>
<div class="col-lg-6">
<input type="date" id="DTdob" ng-model="addemp.employee.dateofbirth" required class="form-control" />
</div>
</div>
<div class="row">
<input type="submit" id="btnSubmit" class="btn btn-primary value=" save" />
</div>
</div>
这是实现这一点的最佳方式。我试过很多方法。请帮忙 首先,在Add函数的参数中不需要$scope
$scope.Add = function (emp) {
this.EmployeeObject = angular.copy(emp);
employees.push(this.EmployeeObject);
this.employee=null;
$scope.$setPristine(true);
}
用演示更新它
var-app=angular.module('app',[]);
app.controller('MainCtrl',函数($scope,$compile){
"严格使用",;
$scope.empList=[];
$scope.addemp={};
$scope.saveEmp=function(){
$scope.empList.push($scope.addamp);
$scope.reset();
};
$scope.reset=函数(){
$scope.addemp={};
$scope.form.$setPristine();
}
});代码>
input.ng-invalid.ng-dirty{
背景色:#FA787E;
}
input.ng-valid.ng-dirty{
背景色:#78FA89;
}
员工编号
FirstName
LastName
部门
DOB
提交
重置
格式:{addemp | json}
雇员列表:{{empList|json}
原始:{{形式。$Pristine}}
错误:{{form.$error | json}}
我已清除带有以下代码的文本框。e、 我已经清除了名字文本框
HTML部分
e.FirstName= "";
var app = angular.module('app', []);
app.controller('MainCtrl', function($scope, $compile) {
'use strict';
function resetform() {
document.getElementById("frmEmployee").reset();
}
$scope.Add = function (emp,$scope) {
this.EmployeeObject = angular.copy(emp);
employee.push(this.EmployeeObject);
resetform();
}
});
它是纯JavaScript,带有简单的单行代码。
提交表单后,在controller中的函数末尾添加此语法
执行addamp.employee={}或$scope.emp={}。要绑定到ng模型的对象,将其设置为{}Try:emp=undefined;squiroid的答案看起来不错,如果它不起作用,你还有其他问题。在您提供的$scope.Add函数中,您正在设置$scope.emp=null,而您的模型是addamp.employee。。。因此,也许您应该$scope.addamp.employee=null或其他什么。它不起作用。可能代码是正确的,但对于我来说,它不与模型绑定,它不工作。可能代码是正确的,但对于我来说,它不与模型绑定这里是更新的plunker:-您只需要这个。employee=null$范围:$setPristine(真);推送数据后,我将根据您的问题更新答案当前接受的答案似乎满足OP的需要。你的回答带来了什么?此外,还应始终解释作为答案发布的代码。resetform()函数可重置所有表单字段。它可以使用id frmEmployee访问表单。这个resetform()是在提交数据之后调用的。我承认您的解决方案是不同的,也很有效。那么,你可以编辑你的答案并指出差异吗。主要是添加解释解决方案的文本。这只是为了改善你的回答方式,而不是在任何意义上放弃你的答案。
e.FirstName= "";
var app = angular.module('app', []);
app.controller('MainCtrl', function($scope, $compile) {
'use strict';
function resetform() {
document.getElementById("frmEmployee").reset();
}
$scope.Add = function (emp,$scope) {
this.EmployeeObject = angular.copy(emp);
employee.push(this.EmployeeObject);
resetform();
}
});
document.getElementById('yourFormId').reset()