当前位置: 首页 > 面试题库 >

角度-提交后清除表单输入

邢烨烨
2023-03-14
问题内容

我有一个简单的形式,像这样:

<form name="add-form" data-ng-submit="addToDo()">
    <label for="todo-name">Add a new item:</label>
    <input type="text" data-ng-model="toDoName" id="todo-name" name="todo-name" required>
    <button type="submit">Add</button>
</form>

与我的控制器如下:

$scope.addToDo = function() {
    if ($scope.toDoName !== "") {
        $scope.toDos.push(createToDo($scope.toDoName));
    }
}

我想做的是在提交后清除文本输入,因此我只需清除模型值:

$scope.addToDo = function() {
    if ($scope.toDoName !== "") {
        $scope.toDos.push(createToDo($scope.toDoName));
        $scope.toDoName = "";
    }
}

除了现在,因为“需要”表单输入,所以在表单输入周围出现了红色边框。这是正确的行为,但不是我在这种情况下想要的……所以,我想清除输入,然后模糊输入元素。这导致我:

$scope.addToDo = function() {
    if ($scope.toDoName !== "") {
        $scope.toDos.push(createToDo($scope.toDoName));
        $scope.toDoName = "";
        $window.document.getElementById('todo-name').blur();
    }
}

现在,我知道从这样的控制器修改DOM在Angular文档中是很陌生的-但是还有更多的Angular方式可以做到这一点吗?


问题答案:

当您给表单命名时,它会自动添加到中$scope

因此,如果您将表单名称更改为“ addForm”(因为我认为不是add- fromangular的有效名称,不确定原因),您将引用$scope.addForm

如果您使用的是Angle
1.1.1或更高版本,则您将在上找到一个$setPristine()方法$scope.addForm。这应该以递归的方式来重置您的表格。或者,如果您不想使用1.1.x版本,则可以查看源代码并进行仿真。



 类似资料:
  • 问题内容: 我面临一个相当愚蠢的问题。我正在创建我的第一个React应用程序,遇到一个小问题,提交表单后,我无法清除输入值。尝试谷歌搜索此问题,在这里找到了一些类似的线程,但我无法解决。我不想更改组件/应用程序的状态,而只是将输入的值更改为空字符串。我尝试清除函数中输入的值,但出现错误: “无法设置未定义的属性’值’”。 我的SearchBar组件: 问题答案: 您有一个受控组件,其值由决定。因此

  • 问题内容: 我要在验证后重置表单。当前,表单在提交并有效后仍会显示以前的数据。基本上,我希望表单在所有字段都干净的情况下返回到原始状态。正确的做法是什么? 问题答案: 问题是,即使数据已验证并已处理,您始终使用传递的任何数据来呈现表单。此外,浏览器会存储上一个请求的状态,因此,如果此时刷新页面,浏览器将重新提交表单。 处理成功的表单请求后,重定向到页面以获取新状态。

  • 当表单的任何输入被点击(或更改)时,提交表单的“AngularJS方式”是什么? 我很想使用jQuery并简单地执行,但它可能值得正确学习。 我曾尝试执行,但这里的错误是>范围内的

  • 问题内容: 我有一个包含各种输入字段和两个按钮的表单;一个用于提交,另一个用于取消。 我要单击的取消按钮时清空所有输入。到目前为止,我已经设法通过使用每个输入的 ref 属性来做到这一点。 但是,我想清空输入字段,而不必分别清空每个字段。我想要类似的东西(jQuery): 问题答案: 答案取决于您的输入是 受控 还是 不受控制 。如果不确定或需要更多信息,请查看官方文档对 受控组件 和非 受控组件

  • 我的页面中有以下javascript,它似乎不起作用。 我想在回车时禁用提交表单,或者更好的是,调用我的ajax表单提交。这两种解决方案都是可以接受的,但是我上面包含的代码不会阻止表单提交。

  • 当我在做表单处理时,我有一个form.html文件和一个process.jsp文件。html将显示表单,action设置为process.jsp。我需要检查用户是否填写了输入字段。 如果用户没有输入任何内容并单击submit按钮,request.getParameter(“name”)的返回值是什么。因为我不知道它是空值还是空字符串,所以我都检查了。而只是想弄清楚它是空字符串还是空字符串。