VB代码只检测一个HTML元素并忽略其余的元素

时间:2015-06-02 01:09:34

标签: html vb.net htmlelements

我正在使用VB来检测文档中的所有textarea元素并编辑它们的值。

这是代码:

For Each Element As HtmlElement In WebBrowser4.Document.GetElementsByTagName("textarea")
  MsgBox(Element.GetAttribute("name"))
  If (Element.GetAttribute("name") = "field1") Then
    Element.SetAttribute("Value", Message)
  ElseIf (Element.GetAttribute("name") = "field2") Then
    Element.SetAttribute("Value", My.User.Name.Replace("/", "~"))
  End If
Exit For
Next Element

正如您所看到的,我感兴趣的两个textarea元素包含name field1field2,但我的代码仅检测到编辑field1

我尝试添加更多元素,除了field1之外,它仍然没有检测到任何内容。

这是我正在搜索的文件:

<?php
if(isset($_POST['field1']) && isset($_POST['field2'])) {
  $data = $_POST['field1'];
  file_put_contents($_POST['field2'] . '.txt', "");
  $ret = file_put_contents($_POST['field2'] . '.txt', $data, FILE_APPEND | LOCK_EX);
}
?>
<form action="" method="POST">
  <textarea style="width: 800px;" name="field1"><?php echo htmlspecialchars($field1) ?></textarea>
  <textarea style="width: 800px;" name="field2"><?php echo htmlspecialchars($field2) ?></textarea>
  <input type="submit" style="width: 150px;" name="submit" value="Save Data">
  <input type="reset" style="width: 150px;" name="reset" value="Reset"/>
</form>

我很困惑。我做错了什么?

1 个答案:

答案 0 :(得分:1)

你实际上并没有循环。试试:

For Each Element As HtmlElement In WebBrowser4.Document.GetElementsByTagName("textarea")
  MsgBox(Element.GetAttribute("name"))
  If (Element.GetAttribute("name") = "field1") Then
    Element.SetAttribute("Value", Message)
  ElseIf (Element.GetAttribute("name") = "field2") Then
    Element.SetAttribute("Value", My.User.Name.Replace("/", "~"))
  End If
Next 'loop to next element

对于每个文档:https://msdn.microsoft.com/en-AU/library/5ebk1751.aspx