Javascript 从网站调用事件-使用VBA调用Internet Explorer

Javascript 从网站调用事件-使用VBA调用Internet Explorer,javascript,vba,ms-access,internet-explorer,ie-automation,Javascript,Vba,Ms Access,Internet Explorer,Ie Automation,我正在Microsoft Access中使用VBA实现Internet Explorer自动化。我已经打开了我想要的网站,但是有一个输入,当在里面键入文本并按enter键时,网站会尝试验证数据并根据此输入填充其他字段 查看控件时,我发现以下代码: <input name="ctl00$ContentPlaceHolder1$txtId" type="text" maxlength="8" onchange="javascript:setTimeout('__doPostBack

我正在Microsoft Access中使用VBA实现Internet Explorer自动化。我已经打开了我想要的网站,但是有一个输入,当在里面键入文本并按enter键时,网站会尝试验证数据并根据此输入填充其他字段

查看控件时,我发现以下代码:

      <input name="ctl00$ContentPlaceHolder1$txtId" type="text" maxlength="8" onchange="javascript:setTimeout('__doPostBack(\'ctl00$ContentPlaceHolder1$txtId\',\'\')', 0)" onkeypress="if (WebForm_TextBoxKeyHandler(event) == false) return false;
javascript:return ValidateNumber(event);
       " id="ctl00_ContentPlaceHolder1_txtId" class="TextBox" onfocus="javascript:sObjetoOnFocusCSS(this);
       " onblur="javascript:sObjetoOnBlurCSS(this,'TextBox');" 
        style="font-weight:normal;"> 

我认为,
ValidateNumber(event)
负责验证此输入中插入的数据,以填充此网站中的其他字段

我试着做一些类似于调用document.all(ctl00$ContentPlaceHolder1$txtId)的事情但它不起作用


运行验证
ctl00$ContentPlaceHolder1$txtId
控件内数据的
ValidateNumber(event)
函数时,我可以做什么或修复什么?

由于存在与元素相关联的
onChange
事件,因此调度事件应该执行它。在填充输入字段后尝试一下

Dim ie as InternetExplorerMedium
Dim ieEvent
Dim htmldoc as HTMLDocument

Set ie = 'however you're setting IE'
Set htmldoc = ie.document
Set ieEvent = htmldoc.createEvent("HTMLEvents")

ieEvent.initEvent "change", False, True
ie.document.all.Item("ctl00_ContentPlaceHolder1_txtId").dispatchEvent ieEvent

您提到的脚本与onkeypress事件关联,因此您可以尝试:

htmldoc.querySelector("input[name='ctl00$ContentPlaceHolder1$txtId']").FireEvent "onkeypress"

是否有可共享的URL?删除
调用
关键字。@MathieuGuindon我删除了,但它不起作用至少你没有使用90年代早期的VB语法;-)