我正在使用Power Automate Desktop和Execute Javascript流,尝试自动化Quickbooks Online Payroll表单中的一些用户条目。
在本机使用表单时,似乎在blur
上触发了一个事件,以验证数字输入等。
使用JS流,更新输入值不能被表单识别,因为一旦我保存它,它就将这些输入显示为空。
所以我想我需要触发blur
事件来获取要保存的数据。
function ExecuteScript() {
var $payrollTableRows = $("table").first().find("tbody > tr.enabled");
var $regHoursInput;
var decRegHours;
var $bonusInput;
var employeeName;
console.log('Power Automate: Rows Found: ' + $payrollTableRows.length);
$payrollTableRows.each(function(){
employeeName = $(this).find("td:eq(1)").find("a").text();
$regHoursInput = $(this).find("input[wageitemid='HOURLY_PAY']");
if($regHoursInput){
decRegHours = Number($regHoursInput .val());
$bonusInput = $(this).find("input[wageitemid='BONUS']");
$bonusInput.focus();
if($bonusInput){
$bonusInput.val(decRegHours);
$bonusInput.trigger('blur');
}
}
});
}
下面是在QB Payroll页面上的focus
和blur
上执行的脚本。
为什么脚本启动的触发器不激发此代码?
**UPDATE 1:**正在添加页面得图像:
**更新2:**发布我使用的PAD流程。还从this video中得到了一个很好的概述。以及如何使用this article中的循环和循环索引。
我的流:
2条答案
按热度按时间20jt8wwn1#
要在不依赖JavaScript的情况下执行类似的操作,可以使用变量和循环。
用于此流的Html:
我使用了一点JavaScript来提取表中的行数和列数,这可以通过流函数“从网页中提取数据”来完成,但我发现JavaScript更快/更容易。
声明第一个输入框的一个UI元素。可以通过替换/更改选择器属性以使用变量来重用此元素。
在流中,为特定控件分配与HTML选择器匹配的值。
然后在您想要更改/提取值的任何位置使用相同的元素(记住变量现在设置UI元素)
第一次
完整的流程代码(复制这个并粘贴到PAD上查看详细信息)你这边会有错误,但你会看到流程。
运行方式:
指令集
gfttwv5a2#
我没有QB,但我把一个快速的html页面与脚本。
这是html
当我使用Power automate在页面上运行以下脚本时,它会触发文本框上的
onblur
事件实际应用:
当我尝试以与您类似的方式调用代码时,我只得到链接到 blur 事件的控件列表。
我假设QB中使用的是jQuery。当涉及到PAD时,我倾向于坚持使用原生JavaScript,更多的是输入,但更少的是抽象。