Javascript 在Angularjs中提交后重置表单

Javascript 在Angularjs中提交后重置表单,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,嗨,我有一个表单,它在点击按钮时会更新 $scope.action = "Update"; var id = $routeParams.editId; scope.item = updateRecord.get({ id: id }); 项目更新后,不会删除表单字段中输入的信息。我想知道在udpating之后,angularjs中有什么可以添加到上面的代码中,以便它也可以清除为表单。 谢谢您可以通过,$scope.formName.$setPristine()重置表单但如果要将模型对

嗨,我有一个表单,它在点击按钮时会更新

 $scope.action = "Update";
  var id = $routeParams.editId;
  scope.item = updateRecord.get({ id: id });
项目更新后,不会删除表单字段中输入的信息。我想知道在udpating之后,angularjs中有什么可以添加到上面的代码中,以便它也可以清除为表单。
谢谢

您可以通过,
$scope.formName.$setPristine()重置表单但如果要将模型对象绑定到输入,也需要注意清除这些输入,即:

$scope.currentRecord={}

编辑

正如ToodoN Mike指出的,不要忘记设置

$scope.formName.$setUntouched()


angular 1.3中引入了
$toucted
标志。

在提交函数正文的底部运行下面的代码

// Reset the form model.
vm.project = {};
// Set back to pristine.
vm.form.$setPristine();
// Since Angular 1.3, set back to untouched state.
vm.form.$setUntouched();
“vm.form”是我的表单名

有关更多信息,请查看此文档页面: 这对我很有效

viewModel.data = {};
$scope.formName.$setUntouched();
$scope.formName.$setPristine();
1) 要删除表单字段中的值并重置,可以使用

2) 接下来,要将表单设置为未触及状态,请使用

(如果表单字段中有必填字段,并且使用ng消息,则如果不使用以下功能,这些字段将显示错误。)


我不明白这个问题,但也许您可以在Html组件中清理表单:

函数:ngSubmit(),发送数据。 taskName是字段的名称,也是taskBody

<form (ngSubmit)="onSubmit(taskName.value, taskBody.value); taskName.value=''; taskBody.value=''" #taskForm="ngForm">


可能重复:不要忘记使用$scope.formName。$setUntouched()->$touched标志是在angular 1.3中引入的,请使用
$scope.currentRecord={}清除表单是错误的方法,请尝试使用空的works fine重置字段。@MohammadFareed
currentRecord
仅用作引用当前表单模型的示例,它不是
$scope
上的真实对象。请告诉我为什么这种方法不适用于这种方法,即我在控制器中使用它而不是$scope。只是为了澄清一下。如果将控制器作为别名(强烈建议使用vm),则可以将类似
name='vm.form'
的属性设置为form元素。然后,一个对象将暴露于您当前的作用域(即vm)。接下来要做的就是重置
原始
触摸的
值,并重置输入的
ng型号
$scope.formName.$setUntouched();
<form (ngSubmit)="onSubmit(taskName.value, taskBody.value); taskName.value=''; taskBody.value=''" #taskForm="ngForm">