我正在尝试通过Keyboard Maestro中的Execute Javascript宏选择一个下拉项。该代码用于选择和验证下拉项,但在我使用它的页面中,还有其他下拉列表应根据选择自动填充。当我手动单击下拉项时,其他下拉列表会相应更新。通过我正在使用的javascript,它选择项目,但留下其他下拉列表。我需要使用纯javascript而不是jquery。有没有人有任何关于如何让页面根据JavaScript选择做出反应的想法?
// variable to enter into dropdown
var vDropdownInput = (document.kmvar.vZEROInput);
// variable to get the Element by ID
var objSelect = document.getElementById("web-selection_"+document.kmvar.vZEROIndex+"_");
// function to do the work
setSelectedValue(objSelect, vDropdownInput);
// function definition
function setSelectedValue(object, value) {
for (var i = 0; i < object.options.length; i++) {
if (object.options[i].text === value) {
object.options[i].selectedIndex = i;
return;
}
}
// Throw exception if option `value` not found.
var tag = object.nodeName;
var str = value;
return str;
}
编辑:我发现这个相关的帖子,但我只是没有得到建议的解决方案。 Select item in CascadingDropDown via JavaScript & invoke update
How do I programmatically force an onchange event on an input?
这回答了我的问题。
var element = document.getElementById('just_an_example');
var event = new Event('change');
element.dispatchEvent(event);