我一直在开发一个项目,我需要登录我们的内部服务器网页并更新表单中的值并将数据提交给服务器。主要问题是,在提交或单击“保存”按钮时,Internet Explorer会显示一个弹出按钮,上面写着“您是否需要保存数据,是或否?”。选择是后,数据将被提交,我会看到另一个弹出按钮,显示“数据已提交”。但是,如果存在重复数据,则会显示弹出的验证错误,数据已存在。我无法捕获该方法返回的值。
由于它是内部服务器链接,我无法从公司桌面发布屏幕截图或链接,我正在从Internet Explorer分享以下HTML代码。
<a id= "saveButton" onclick="submitter('Save'); return false;" href="" shape= "">
C#代码
InternetExplorerMedium IE = new InternetExplorerMedium();
HTMLDocument hdoc = new HTMLDocument();
IE.visible = true;
IE.Navigate("Internal web server page");
更新表单中的所有值后,使用以下代码导航到表单的“保存”按钮
hdoc.all.item("saveButton").click();
所以我需要获得onclick元素的返回值,即它是真还是假。我试过hdoc.parentWindow.execscript("submitter('Save'); return false;","javascript");
但它什么也没做。似乎InvokeScript
不适用于IE。有没有人曾经研究过这样的问题?
注意 - InternetExplorerMedium
是打开内部服务器网页的唯一方式。 InternetExplorer
课程在加载页面时没有任何帮助。
答案 0 :(得分:0)
<form name="myform" onsubmit="return submitter(event);" action="/account/login.php">
<label>name:<br/>
<input name="txtname" id="txtname" />
</label>
<label>secret:<br/>
<input type="password"/>
</label>
<input type="submit" value="Login"/>
<input type="reset" value="Reset"/>
</form>
<script type="javascript/text">
function submitter(evt){
// return true or false to allow the form to be submitted.
// do your field validations in this function.
}
</script>
为了帮助您,我们需要查看您尝试从C#自动化的内部网页的标记和脚本....看来该网页设计不正确(不使用上述设计模式)。流程是 1.加载带有表单的网页。 2.用户将数据输入表单。 3.用户单击表单的提交按钮...这将触发表单onsubmit事件处理程序(提交者),然后应该验证输入的数据。如果其有效的提交者返回true并且表单数据被提交给服务器(表单的action属性)。如果数据无效,则submitter函数返回false,取消onsubmit事件处理程序。