为什么我不能使用C#WebBrowser控件触发select change事件?

时间:2015-02-26 02:36:15

标签: javascript c# html winforms

在javascript中我看到以下定义:

 $('#dropDownId').change(function(){        
 ... do stuff...          
 });

 <select id="dropDownId">
     <option value="1">value 1</option>
     <option value="2">value 2</option>
     <option value="3">value 3</option>
 </select>

我尝试使用以下代码:

 webBrowser.Document.GetElementById("dropDownId").SetAttribute("value", "1");
 webBrowser.Document.GetElementById("dropDownId").Children[1].SetAttribute("selected", "selected");
 webBrowser.Document.GetElementById("dropDownId").InvokeMember("onchange");

我可以看到下拉列表被更改为正确的值,但以下内容永远不会被执行:

 $('#dropDownId').change(function(){        
 ... do stuff...          
 });

另外,当我在Chrome中查看“dropDownId”的属性时,“onchange”事件为空,那么如何为下拉列表调用上述“更改”脚本?

1 个答案:

答案 0 :(得分:2)

jquery附加事件以允许多个事件处理程序,这就是onchange的{​​{1}}属性为空的原因。

你可以这样做:

select

function myChange(){        
 ... do stuff...          
}

<select id="dropDownId" onchange="myChange">
...
</select>

webBrowser.Document.InvokeScript("myChange");