我有一个带有搜索功能的 DataGrid,我希望网站在搜索栏中按下每个键时自动刷新网格,就像现代搜索引擎一样。想象一下,就像在按下每个键后按回车键,或单击搜索按钮。在 Mendix 中做到这一点的唯一方法是使用外部小部件(不能使用它们,因为它们中的大多数都无法在数据库中搜索相关实体)或使用我所做的 JavaScript Snippets。
我已经尝试以编程方式按 Enter 键,但我无法获取代码来执行此操作。
我尝试的另一个选项是在按下每个键后以编程方式单击搜索栏,这本身就有效,但这里的问题是选择跳出输入字段并进入搜索按钮,并且搜索字段中也没有输入。
选项 1:以编程方式单击搜索按钮
定义页面上的元素
var dataGrid = document.querySelector('.mx-datagrid.mx-name-grid1');
var itemsSelect = dataGrid.querySelector('.mx-grid-search-input.mx-name-searchField1')
var searchButton = dataGrid.querySelector('.mx-grid-search-controls > button.mx-grid-search-button')
定义函数
function clickSearchButton() {
searchButton.click();
};
在输入中的每一个变化触发函数
itemsSelect.onkeypress = function(){clickSearchButton};
选项 2:以编程方式按 Enter
它与上面的代码几乎相同,也是我更喜欢的方式。
我尝试了许多变体,但最后我想要的唯一东西应该是这样的:
itemsSelect.onkeypress = function(){*call a function to programmatically press enter*};
我尝试了来自各地的解决方案,例如:
当用户在 js 中执行某些操作时,我想以编程方式按 Enter 键
和许多其他来源,一些人声称由于安全原因这是不可能的。真的吗?
大约两周以来,我一直在尝试解决这个问题,但几乎没有成功。我是否忽略了任何事情,是否还有其他我没有想到的解决方案?不使用 Mendix 不是一个选项。这是一个巨大的工作项目。