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