【问题标题】:AngularJS trigger for select box选择框的AngularJS触发器
【发布时间】:2016-05-21 21:12:37
【问题描述】:

我使用trigger('click') 作为单选按钮和选择框。它适用于单选按钮右侧:

angular.forEach(angular.element.find('input'), function(node){
    angular.forEach(result.data.test, function(value, key){
        if(node.value == value.FieldValue) {

            // ** JUST SEE THIS LINE ** //
            // This works fine in radio button
            angular.element("#" + node.id).trigger('click');

        }
    });
});

见**行。

但它不适用于选择框:

angular.forEach(angular.element.find('select, option'), function(node){

    angular.forEach(result.data.test, function(value, key){
        if(node.value == value.FieldValue) {

            // This line doesn't work!!! //
            angular.element("#" + node.id).trigger('click');

        }
    });
});

【问题讨论】:

  • @Dhaval 它在 AngularJS 中不起作用。当我使用 angular.element("#" + node.id).value.trigger('click'); 时,它给了我这个错误:TypeError: Cannot read property 'trigger' of undefined
  • 能否提供fiddle

标签: javascript angularjs dom


【解决方案1】:

为什么触发器不能与选择元素一起使用是因为选择元素的选择是由值决定的。 您可以将每个选项值设置为 node.id 在您的 forEach 循环中,您可以将值设置为触发点击的 node.id。

angular.forEach(angular.element.find('select, option'), function(node){
    angular.forEach(result.data.test, function(value, key){
        if(node.value == value.FieldValue) {
            angular.element.find('select').val(node.id);
        }
    });
});

【讨论】:

  • 它给了我这个错误:TypeError: angular.element.find(...).val is not a function
  • @user3532446 好像你完成的没有任何选择元素。
猜你喜欢
  • 1970-01-01
  • 2012-10-16
  • 2016-06-25
  • 1970-01-01
  • 2017-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多