使用angularJS获取提交表单的按钮元素

时间:2014-08-06 12:41:15

标签: javascript angularjs

我想在提交按钮上使用Ladda(按钮上的微调器)。问题是我不知道如何获得按钮元素。

当我在一个简单的按钮上使用它时(键入='按钮'),我只需在ng-click中发送事件并执行以下操作: 玉:

button.btn.btn-primary.btn-xs.ladda-button(type='button', ng-click='accounting($event)', data-style="zoom-in", data-size="xs")
    span.ladda-label Accounting

使用Javascript:

$scope.accounting = function(event){
   event.preventDefault();
   var loader = Ladda.create(event.currentTarget);
   loader.start();
};

此处当前目标是按钮,但在表单的情况下,当前目标具有表单和所有输入。问题是如何只针对相应的按钮?

1 个答案:

答案 0 :(得分:0)

据我了解,Ladda用于指示按钮上的加载。

我建议您在提交按钮上使用自定义指令。指令是您在AngularJS中操作DOM的地方。您不应该使用accounting函数。

以下是文档:https://docs.angularjs.org/guide/directive

您可以将指令customladda作为提交按钮的属性,如下所示:

<input type="submit" customladda data-style="zoom-in" data-size="xs" class="btn btn-primary btn-xs ladda-button">

以翡翠格式:

input.btn.btn-primary.btn-xs.ladda-button(type='submit', customladda='customladda', data-style='zoom-in', data-size='xs')

指令代码:

app.directive('customladda', function(){
  return {
    restrict: 'A',
    link: function(scope, element, attrs){
        var button = element[0];
        element.on('click', function(){
          var loader = Ladda.create(button);
          loader.start();
        });
      }
    };
});

以下是plunker: http://plnkr.co/edit/hixBizT13QHzHLsqWH2h?p=preview