触发Ctrl + A事件

时间:2019-01-30 09:08:33

标签: javascript jquery sapui5

我有一个SAPUI5 SelectDialog控件,其中包含StandardListItem控件,用于显示数据列表,如下所示:

enter image description here

我可以一个一个地选择每个条目。

我要实现的目标是提供“全选”或“全选”功能。如果我在对话框中按 ctrl + A ,则效果很好并选择了对话框中的所有条目。我想要的是在顶部提供一个按钮/复选框,用户可以选择立即选择/取消选择所有条目。与multicombobox不同,SelectDialog控件没有内置的“全选”方法。

使用https://www.w3schools.com/jsref/event_ctrlkey.asp上的教程,我尝试使用按钮触发 ctrl + A 事件,但似乎不起作用。有任何输入吗?

我尝试过的代码

<script>event.$(document).ready(function(){
        $("#myButton").click(function () {  
        var triggerEvent = $.Event();
        triggerEvent.buttonevent == 65; //keycode for alphabet A
        triggerEvent.ctrlKey == true;
        $(this).trigger('triggerEvent');
    });
    });</script>



<SelectDialog id="myDialog" growingThreshold="2000" 
        multiSelect="true" noDataText="NoDataFound" liveChange="handleSearchSelectionDialog" items="{model>/data}"
        search="handleSearchSelectionDialog" title="Choose" contentHeight="50%">
        <StandardListItem id="abc" 
            title="SELECT ALL" type="Active"/>
        <StandardListItem id="myId" 
            title="data" type="Active"/>
<button onclick="clicked" id="myButton">SELECT ALL</button>
    </SelectDialog>

谢谢。

1 个答案:

答案 0 :(得分:0)

我认为您的解决方案可以在这里找到: Firing a Keyboard Event in JavaScript

您基本上需要触发两个键事件。 首先是ctrl,然后是'a'。

var ctrlEvent = new KeyboardEvent("keydown", {bubbles : true, cancelable : true, keyCode : 17, char : 17, shiftKey : true});
var aEvent = new KeyboardEvent("keydown", {bubbles : true, cancelable : true, keyCode : 65, char : 65, shiftKey : true});

document.dispatchEvent(ctrlEvent);
document.dispatchEvent(aEvent);