如何在选择框中选择一个或多个项目
Using JQLite How to select an item or items in a select box
我试图在单元测试中的选择框中突出显示1个或多个项目。我正在使用Karma, Jasmine和PhantomJS, AngularJS, JQLite, CoffeeScript。
我的列表有项目["banana", "apple", "orange"]。
我试着直接设置值:
sourceList = element.find('select').eq(1)
sourceList.val("[banana]").triggerHandler('change');
// Or
sourceList.val("banana").triggerHandler('change');
当我得到sourcelist。val()时它没有设置
我尝试触发事件来选择它。注意,我不能做一个"点击"事件,因为我有另一个事件触发点击。
sourceList.find('option').eq(0).triggerHandler("active");
sourceList.find('option').eq(0).triggerHandler("focus");
sourceList.find('option').eq(0).triggerHandler("drag");
sourceList.find('option').eq(0).triggerHandler("dragLeave");
我尝试使用selectedIndex
sourceList.selectedIndex = 1
这些似乎都没有突出显示或选择项目。我没主意了。有人做到了吗?
下面是我要测试的指令的方法:
// Clicks on the add button. Should take all items highlighted and move them over
$scope.add = function(){
var sourceList = $element.find('select').eq(1);
angular.forEach(sourceList.val(), function(val, index){
$scope.selected.push({
text: val
});
});
checkListDupes();
};
这段代码工作时,我手动在浏览器中,但我似乎不能得到我的测试,以突出显示在选择框中的一些项目,然后单击添加按钮。所以当这段代码执行sourceList.val()等于[].
有点晚了,但我就把它留在这里,留给其他有同样问题的人。
我不知道你是怎么建立选择框的选项的,但是sourceList.val("banana").triggerHandler('change');
只要期权的价值是香蕉,就可以正常工作。如果你没有在ng-options中指定轨道,angular创建的默认值将是'string:'+<option label>
,所以sourceList.val('string:banana').triggerHandler('change');
应该可以做到。
相关文章:
- 从a-z中随机选择一个字母
- AngularJS ng选项在选择一个选项后删除了默认的空白值
- 在下拉列表中选择一个选项的值
- 在类JavaScript选择的另一个元素中选择一个标记元素
- Jquery:当两个或多个条件为true时,选择一个元素
- 可以使用createRange选择一个空范围
- 选择一个元素,使其最近的具有特殊属性的父元素具有特殊值
- 使用 Jquery 选择一个 td 元素
- 当使用jQuery/Javascript选择一个多选时,如何使所有值都不被选中:
- 在一组复选框中,一次只允许选择一个
- 如何强制用户从下拉列表和按钮中选择一个值以启用保存按钮
- 从数组中选择一个变量
- 正在读取<p: 选择一个菜单/>在onchange回调中
- 在输入字段中选择一个值,然后用相应的数据填充另一个字段
- 如何以编程方式在 jsTree 中选择一个节点并打开所有父节点
- Asp.net 引导下拉菜单 - 选择一个项目
- 如何根据 jsp 中数据库中的值在下拉列表中选择一个值
- 通过硒选择一个javascript下拉列表
- 选择一个从 mysql 返回选中/未选中复选框的对象
- 如何在 PHP 中使用 OnChange 事件的下拉列表中选择一个选项后,对大量数据行设置分页