2015-06-21 149 views
2

我试图取消选中使用Excel VBA的网页上已经选中的复选框。取消选中IE中的复选框

HTML代码:

<div class="mycheckbox checked"> 
<label class="mycheckbox1 checked" data-initialize="checkbox"> 
    <input name=<name> class=<class> id=<id> type="checkbox" checked="checked"></input></label></div> 

VBA代码存根:

Public Sub uncheck(IE As Object) 
    Dim Element As Object 
     With IE.Document 
      Set Element = .getElementById(<id>) 
      Element.Checked = False 
      Element.defaultChecked = False   
     End With 
    End Sub 

如期望的那样HTML代码更改为这不工作了 -

<div class="mycheckbox checked"> 
<label class="mycheckbox1 checked" data-initialize="checkbox"> 
    <input name=<name> class=<class> id=<id> type="checkbox" checked=""></input></label></div> 

该复选框是不选中因为仍有检查属性

即使尝试了下面的(点击复选框)。它什么也没做 -

Public Sub uncheck(IE As Object) 
    Dim Element As Object 
     With IE.Document 
      Set Element = .getElementById(<id>) 
      Element.Click 
     End With 
    End Sub 

有什么建议吗?或者我可以知道为什么我的方法不起作用?

+0

复选框是否是表单的一部分? –

+0

嘿!我在编辑问题时发现[this](http://getfuelux.com/javascript.html#checkbox-usage-data-attributes)。我想我多加一点html可能有助于弄清楚。 –

+0

为什么不用'特定字符串值替换'',''和''?这会提高可读性,这是令人困惑的,因为实际上是错误的语法。 – omegastripes

回答

3

这里是允许做一个通用的测试,如果我们可以取消选中该复选框代码:

​​

对我来说它按预期工作:显示选中的复选框,并第一个警报,然后取消选中它并显示第二警报。如果您的网页以其他方式工作,那么通过开发人员工具查看您的网页上的复选框onclickonchange事件处理程序是值得的。在IE中,按F12,点击DOM Explorer,选中HTML代码复选框,点击事件选项卡。如果有任何事件处理程序,那么您必须澄清它是否修改复选框的状态(紧随VBA之后)。

+0

感谢您的提示!是的,它有标签和输入元素的事件。那么我必须研究它们。如果这些事件将是真正的罪魁祸首,我会卷土重来并将其作为必要答案投票 –