コードで webbrowser 要素を使用して、いくつかのものを自動化しています。いくつかのラジオボタンを含むこの Web ブラウザにフォームをロードしています。私の目的は、ラジオボタンの 1 つを選択することです。ただし、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()");