当前位置: 首页 > 知识库问答 >
问题:

如何在angular.js?中查看ng-提交事件或在子表单上输入按键

樊浩初
2023-03-14

我有一个包含5个步骤的多步骤表单。我希望用户能够使用enter键提交每个子表单,以触发验证,并在成功后移动到下一个子表单。我找不到这样做的方法。我在想,也许我可以将ng keydown事件添加到每个子窗体(或绑定到onkeydown的自定义指令),并观察回车键。

有没有人有过让它在角度上工作的经验?您将如何添加此功能?

下面是子表单的简单HTML示例。假设“下一步”按钮正在触发范围。nextStep()在角度控制器内,然后执行验证,以确定用户是否可以进入下一步,或者是否显示验证错误。

<form>
    <div ng-form="step1"></div>
    <div ng-form="step2"></div>
    <div ng-form="step3"></div>
    <div ng-form="step4"></div>
    <div ng-form="step5"></div>

    <button type="button" class="btn" ng-click="nextStep()">Next Step</button>
</form>

对于那些正在阅读和寻找更多答案信息的人

我在控制器的$范围内跟踪表单步骤。当前步长。使用它,我可以使用$scope[$scope.current\u步骤]引用当前表单。根据@Vova在下面接受的答案,我会做类似的事情:

$scope.myFunc = function(event) {
    if (!$scope.isFormValid()) {
        return false;
    } 

    // trigger next step (which handles it's own validation)
    $scope.nextStep();
};

$scope.isFormValid = function() {
    // check if the current form is invalid
    if ($scope[$scope.current_step].$pristine
        || $scope[$scope.current_step].$invalid
    ) {
        return false;
    }

    return true;
};

共有1个答案

拓拔弘亮
2023-03-14

使用ng keyup指令集函数,可以获取Enter(13)键事件,并启动验证/前进步函数。

其他解决方案,添加角度ui,并执行以下操作:

<form ui-keypress="{13:'myFunc($event)'}">
  ... input fields ...
</form>

更多解决方案:使用AngularJS按Enter提交表单

 类似资料:
  • 问题内容: 我正在使用ASP.net Web应用程序。 我有一个带有提交按钮的表格。提交按钮的代码如下所示。 我想写如下内容: 我该怎么做呢? 问题答案: 你最好做… 如果返回,则您的表单不会提交。 您可能还应该将事件处理程序从内联移动。

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

  • 问题内容: 单击后,我编写了以下代码以禁用网站上的提交按钮: 不幸的是,它没有发送表格。我怎样才能解决这个问题? 编辑 我想绑定提交,而不是表格:) 问题答案: 做到: 发生的事情是您实际上在完全触发该提交事件之前禁用了该按钮。 您可能还应该考虑使用ID或CLASS来命名元素,因此不要在页面上选择所有提交类型的输入。 (请注意,我使用,因此该表单在示例中并未实际提交;请在使用时将其保留。)

  • 问题内容: 我正在尝试获取手机号码文本框的值,以使用angular.js验证其输入值。我是使用angular.js的新手,但不确定如何实现这些事件,并在我的html代码上放了一些JavaScript来验证或操作表单输入。 这是我的HTML: 而我的控制器: 我不确定如何在angular.js中使用keydown事件,我也搜索了如何正确使用它。我可以验证我对指令的输入吗?还是我应该像使用控制器那样使

  • 问题内容: 我有一个带有两个文本框,一个 选择 下拉菜单和一个 单选按钮 。当按下该键时,我想调用一个Javascript函数(用户定义),但是当我按下它时,将提交表单。 按下键时如何防止提交 ? 问题答案: if(characterCode == 13) { return false; // returning false will prevent the event from bubbling