我在我的代码中使用 webbrowser 元素来自动化一些东西。我正在这个网络浏览器中加载一个表单,其中包含几个单选按钮。我的目的只是选择一个单选按钮。但是,在 html 代码中,有一个 JS 代码可以根据所选单选按钮更改表单操作目标。所以如果我使用,
webBrowser1.Document.GetElementById("chicken").SetAttribute("checked", "checked");
它选择了我想要的单选按钮,但仅此而已。我的意思是它不会触发 JS 代码。在这个 JS 代码中,它也提交了页面,所以我上面的代码只选择了单选按钮并调用了相同的页面。我该如何解决这个问题?
表单标签如下:
<form id="choose_dept" method="POST" action="/place/">
JS代码是这样的:
<script type="text/javascript">
<!--
$("#choose_dept").change(function(){
$("#choose_dept").attr('action', '/place/' + ('input[name=department]:checked').val()
+ '/' );
this.submit();
});
-->
最后编辑:
String sc = @"$(document).ready(function(){" +
"$(\"input:radio[name=department]\").change(function() {" +
"$(\"#choose_dept\").attr('action','place/'+$(this).val());" +
"$(\"#choose_dept\").submit();" +
"});" +
"});";
HtmlElement headElem = (HtmlElement)webBrowser1.Document.GetElementsByTagName("head")[0];
HtmlElement scriptElem = (HtmlElement)webBrowser1.Document.CreateElement("script");
IHTMLScriptElement elem = (IHTMLScriptElement)scriptElem.DomElement;
elem.text = sc;
headElem.AppendChild(scriptElem);
webBrowser1.Document.GetElementById("chicken").SetAttribute("checked", "checked");
webBrowser1.Document.InvokeScript("ready()");