如何以编程方式打开选择

use*_*507 13 select triggers angularjs

有没有人知道是否可以在angularjs中以编程方式打开选择.我试过了

angular.element(el).trigger('focus');
angular.element(el).trigger('click');
angular.element(el).trigger('mousedown');
Run Code Online (Sandbox Code Playgroud)

什么都行不通.

我也试过了

$scope.doSomething = function(){
    setTimeout(function() {
        var el = document.getElementById('test');
        var e = document.createEvent("MouseEvents");
        e.initMouseEvent("mousedown", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
        worked = el.dispatchEvent(e);
    }, 0);

}
Run Code Online (Sandbox Code Playgroud)

以上设置焦点但不要打开选择.

可能吗?

小智 -8

我遇到了同样的问题,最后我创建了自己的指令:

\n\n
angular.module(\'openselect\', [])\n    .directive(\'openselect\', function () {\n        var showDropdown = function (element) {\n            var event;\n            event = document.createEvent(\'MouseEvents\');\n            event.initMouseEvent(\'mousedown\', true, true, window);\n            element.dispatchEvent(event);\n        };\n        return {\n            restrict: \'A\',\n            scope: {\n                \'elemento\': \'@\'\n            },\n            link: function (scope, elem, attrs, ctrl) {\n                elem.bind(\'click\', function () {\n                    var elemento = document.getElementById(scope.elemento);\n                    showDropdown(elemento);\n                });\n            }\n        };\n    });\n
Run Code Online (Sandbox Code Playgroud)\n\n

使用方法:

\n\n
<div style="position:relative">\n<span ng-show="submittedForm.contry.$error.required && co_form.contry.$error.required" class="label label-danger">Indicanos tu pa\xc3\xads</span>\n<select name="country" class="form-control input-md" ng-model="formCheckout.country" id="myCountry" placeholder="Espa\xc3\xb1a" required>\n    <option value="6" selected="selected">Espa\xc3\xb1a</option>\n    <option value="1">Alemania</option>\n    <option value="15">Portugal</option>\n</select>\n<span class="glyphicon glyphicon-chevron-down" style="position: absolute; right: 10px; color: #A6A6A6; top: 18px;" openselect elemento="myCountry"></span>\n
Run Code Online (Sandbox Code Playgroud)\n\n

\n\n

将指令添加到任何标记,传递您要打开的 select (elemento) 的 id。

\n\n

如果您想在其他上下文中使用,您可以在指令中查看非常基本的 javscript 代码;

\n\n

希望有帮助;D

\n

  • 复制别人的天才解决方案,鹦鹉学舌地认为这是你自己的解决方案,而不给他们任何荣誉,这是不光彩的。 (6认同)