在Angularjs中提交后重置表单

时间:2014-02-05 07:42:34

标签: javascript angularjs angularjs-directive

您好我有一个表单,按钮点击更新。

 $scope.action = "Update";
  var id = $routeParams.editId;
  scope.item = updateRecord.get({ id: id });

项目更新后,不会删除表单字段中输入的信息。我想知道在udpating之后在上面的代码中添加的angularjs中有什么可用,以便它也可以清除形式。 谢谢

5 个答案:

答案 0 :(得分:67)

您可以按$scope.formName.$setPristine();重置表单,但如果您将模型对象绑定到输入,则还需要清除那些,即:

$scope.currentRecord={};

修改

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

$scope.formName.$setUntouched()

{1.3}中引入了$touched标记。

答案 1 :(得分:46)

在提交功能的底部,运行以下代码。

// 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"是我的表格名称。

有关详细信息,请查看此文档页面: https://docs.angularjs.org/api/ng/type/form.FormController

答案 2 :(得分:9)

这对我有用。

viewModel.data = {};
$scope.formName.$setUntouched();
$scope.formName.$setPristine();

答案 3 :(得分:3)

1)要删除表单字段中的值并重置,您可以使用$setPristine();

$scope.formName.$setPristine();

2)接下来,要将表单设置为Untouched State,请使用$setUntouched();

(如果您在表单字段中有必填字段,如果您使用 ng-messages ,那么如果您不使用以下功能,那么这些字段将显示错误。)

$scope.formName.$setUntouched();

答案 4 :(得分:1)

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

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

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