取消更改事件

时间:2016-05-30 11:26:06

标签: javascript jquery angularjs

有没有办法取消ng-change活动?

实际上我想在选择框中有一个选项但不希望用户选择它但想要发出警告信息然后选择上一个选项。

为此,我认为最好的方法应该是如果我能以某种方式取消ng-change事件,这样就不会产生任何影响,就像我们在html onchange事件中返回false一样不允许您更改选项。

我还试图以某种方式存储以前的值,然后在ng-change事件中设置该值,但后来发现ng-change没有传递event变量,所以我找不到元素触发事件。

有什么想法吗?

修改

像这样的东西

<select ng-change="DeliveryMethodChange(item)" ng-model="item.DeliveryMethodId" ng-options="method.Key as method.Value for method in deliveryMethods">
         <option value="">(Please Select)</option>
</select>

脚本

$scope.DeliveryMethodChange = function(item) {

    if (item.DeliveryMethodId.toUpperCase() == 'SH') {
          // here I want to reset the value to the previously selected value
          alert('You cannot select this delivery method');
          return false;
    }

    // rest of the code

};

1 个答案:

答案 0 :(得分:-1)

可能是答案;

$scope.DeliveryMethodChange = function(item) {

     $scope.$watch('DeliveryMethodId', function (newVal, oldVal) {
                    if (newVal == 'SH') {
                        item.DeliveryMethodId = oldVal;
                    }
                });
    }