javascript - 使用 angular.js 使用 Enter 键提交表单

标签 javascript angularjs forms

我需要一个帮助。当用户使用 Angular.js 按 Enter 键时,我需要提交表单。我在下面解释我的代码。

    <form name="billdata" id="billdata" enctype="multipart/form-data" novalidate>
    <div id="SHOWDATA">
        <div id="transactionsPortlet" class="panel-collapse collapse in">
            <div class="portlet-body">
                <div class="totalaligndiv">
                    <div class="col-md-6">
                        <div class="input-group bmargindiv1 col-md-12">
                            <span class="input-group-addon ndrftextwidth text-right" style="width:180px">Subject Type:</span>
                            <input type="text" name="shortname" id="resourcesub" class="form-control" placeholder="Add Your Subject Type " ng-model="subject" ng-keypress="clearField('resourcesub');">
                        </div>
                    </div>

                    <div class="col-md-6">
                        <div class="input-group bmargindiv1 col-md-12">
                            <span class="input-group-addon ndrftextwidth text-right" style="width:180px">No of Classes:</span>
                            <select class="form-control" id="resourceperiod" ng-model="period" ng-change="removeBorder('resourceperiod',subject);">
                                <option value="">Select Class</option>
                                <option value="1">1</option>
                                <option value="2">2</option>
                                <option value="3">3</option>
                            </select>
                        </div>
                    </div>

                    <div class="clearfix"></div>
                    <div style="text-align:center; padding-top:10px;">
                        <input type="button" class="btn btn-success" ng-click="addClassData();" id="addProfileData" ng-value="buttonName" />
                        <input type="button" class="btn btn-red" ng-click="cancelClassData();" id="cancelProfileData" ng-value="cancelbuttonName" ng-show="showCancel" />

                    </div>

                    <div class="clearfix"></div>

                </div>
            </div>
        </div>
    </div>
</form>

这里我需要如果用户按下回车键而不提供任何数据,则会显示验证。如果用户通过提供所有数据按下回车键,表单将提交。现在我可以通过单击按钮来执行操作,但在这里我两者都需要。请帮助我。

最佳答案

你可以像这样放置 ng-submit :

<form name="billdata" id="billdata" enctype="multipart/form-data" novalidate ng-submit="addClassData();">

或者如果您想保留它按钮而不是提交按钮,那么下面的指令可能会帮助您。

angular.module('NgEnter', [])
    .directive('ngEnter', function() {
        return function(scope, element, attrs) {
            element.bind("keypress", function(e) {
                if(e.which === 13) {
                    scope.$apply(function(){
                        scope.$eval(attrs.ngEnter, {'e': e});
                    });
                    e.preventDefault();
                }
            });
        };
    });

然后调用该指令

<form name="billdata" id="billdata" enctype="multipart/form-data" novalidate ng-enter="addClassData();">

关于javascript - 使用 angular.js 使用 Enter 键提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33932349/

相关文章:

javascript - MongoDB查询集合中对象的数组

javascript - 如何在外部文件中存储谷歌地图选项

javascript - 应用程序可以工作,但其中的第一个 Controller 失败

javascript - 重构以减少 Controller 中 ionicDatePicker 和 ionicTimePicker 的代码重复

angularjs - 为什么我的服务无法仅在我的一个 Controller 中正确加载?

php - 如何在 ajax 回调中重置表单?

css - 启用 HTML 5 表单验证但禁用 'standard' 错误消息

javascript - 所有信息窗口都有相同的数据

javascript - Coldfusion 异步将表单发送到 cfc

javascript - 如何使用 JavaScript 更新进度条的值?