如何在angularjs中调用输入类型文本中的任何函数?

时间:2017-03-06 11:15:32

标签: javascript angularjs

我已经为时间选择(FROM和TO)提供了2个输入文本,并提交了一个按钮。最初我的按钮被禁用,这意味着每当用户编辑时间FROM和TO我的按钮被启用。我的函数名是enable()。下面是我的代码,我只在其中显示FROM到TO。我需要在input或md-input-container上调用enable()。

  <md-content class=" pad-hori-27 margin-left66" ng-if="!contactDetails.isAllTime">
    <div>
      <md-input-container>
        <label>From Time</label>
        <input mdc-datetime-picker="" date="false" time="true" type="text" id="time2" placeholder="Time" min-date="minDate" format="HH:mm a" ng-model="contactDetails.timePeriod.fromTime" class=" md-input">
      </md-input-container>

      <md-input-container>
        <label>To Time</label>
        <input mdc-datetime-picker="" date="false" time="true" type="text" id="time2" placeholder="Time"  min-date="minDate" format="HH:mm a" ng-model="contactDetails.timePeriod.toTime" class=" md-input">
      </md-input-container>
    </div>
  </md-content>

3 个答案:

答案 0 :(得分:0)

需要ng-change属性
<input mdc-datetime-picker="" md-select="enable()" date="false" time="true" type="text" id="time2" placeholder="Time" min-date="minDate" format="HH:mm a" ng-model="contactDetails.timePeriod.fromTime" class=" md-input">

你可以像这样在集合上创建一个手表:

$scope.$watch('contactDetails.timePeriod.fromTime', function(newValues, oldValues){
  if(newValues != oldValues) {
    $scope.enable();
  }
});

答案 1 :(得分:0)

您可以借助ng-change或ng-click指令调用函数

喜欢

<input mdc-datetime-picker="" ng-change="enable()" date="false" time="true" type="text" id="time2" placeholder="Time" min-date="minDate" format="HH:mm a" ng-model="contactDetails.timePeriod.fromTime" class=" md-input">

但是代替调用功能启用按钮,你可以角度js表单验证 https://docs.angularjs.org/guide/forms

答案 2 :(得分:0)

我不确定您是否需要在每次更改输入时调用enable。 相反,在按钮上使用ng-disabled,提供填充FROM和/或TO的功能。

如果您确实需要在更改时调用启用,请使用ng-change

编辑(详细解决方案) 对于它的价值,这是我的建议。

&#13;
&#13;
angular.module('changeExample', [])
  .controller('ExampleController', ['$scope', function($scope) {
    $scope.value = '';
    $scope.disable = function() {
      return $scope.value === '';
    };
  }]);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="changeExample">
  <div ng-controller="ExampleController">
    <input type="value" ng-model="value" id="ng-change-example1" />
    <button ng-disabled="disable()">Submit</button>
    <p>
      Value is "{{value}}" (activated: {{!disable()}})
    </p>
  </div>
 </div>
&#13;
&#13;
&#13;

请注意,这是使用Angular执行此操作的标准方法,而不是像建议的那样依赖 $ watch

干杯