将值插入“输入”字段时出现问题

时间:2019-06-10 13:58:42

标签: vba internet-explorer

在尝试自动将数据插入网站时遇到一个奇怪的问题。具体来说,其中一个input字段是该网站的html部分:

<input class="maskAcctNbr" id="masked_consumer" type="text" size="20" maxlength="20" value="" autocomplete="off">

当我使用此代码将值插入该字段并单击“查找”按钮时:

Dim SE As MSHTML.IHTMLElement
Set SE = HTMLDoc.getElementById("masked_consumer")
SE.Value = "574844"

页面告诉我我缺少信息。

在我手动单击该字段并输入该数字之后,基础的html代码更改为:

<input class="maskAcctNbr" id="masked_consumer" type="text" size="20" maxlength="20" value="" autocomplete="off" real="574844">

显示新的real属性。 有什么想法可以使用VBA解决吗?我尝试过clickfocus,但直到我使用鼠标单击该字段并手动输入该数字,才真正起作用。

谢谢!

2 个答案:

答案 0 :(得分:1)

尝试参考以下示例可以帮助您解决问题。

示例:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script>
<label for="mySelect">No. Days</label>
<select name="mySelect" id="mySelect">
  <option name="one" value="1">1</option>
  <option name="two" value="2">2</option>
  <option name="three" value="3">3</option>
  <option name="four" value="4">4</option>
  <option name="five" value="5" selected>5</option>
</select><br><br>
<label for="checkbox1">100kms</label>
<input type="checkbox" name="checkbox1" value="125" id="qr1" checked>111<br><br>
<label for="checkbox2">200kms</label>
<input type="checkbox" name="checkbox2" value="225" id="qr2">222<br><br>
<label for="checkbox3">Tyre</label>
<input type="checkbox" name="checkbox3" value="20" id="qr3"><br><br>
<label for="checkbox4">Glass</label>
<input type="checkbox" name="checkbox4" value="20" id="qr4"><br><br>
<label for="checkbox5">General</label>
<input type="checkbox" name="checkbox5" value="60" id="qr5" checked><br><br>
<label for="checkbox6">Third Party</label>
<input type="checkbox" name="checkbox6" value="80" id="qr6"><br><br> Daily :<span id="userdaily"> </span><br><br> Total :<span id="usertotal"> </span><br><br>
<input type="text" id="pricef1" name="pricef1" value="">
<input type="text" id="pricef2" name="pricef2" value="">

答案 1 :(得分:0)

我一次遇到类似的问题,并且激活该字段的.OnClick事件很有帮助。 在你的情况下 SE.onclick 在设置值之前。 当未触发这些事件时,还可能存在其他事件,例如OnChange,它们可能会导致“未输入数据”错误。 祝你好运:)