我正在尝试编写一个greasemonkey脚本,通过浏览器更新项目集合的库存。为此,我需要自动填充一些表单并在提交按钮上模拟鼠标单击。我的表格填写得很好,但我坚持按钮提交。
这是我试图模拟点击
的按钮的HTML<input type="submit" value="Find" style="" name="process-form" onclick="imhocaller.value='find-resources-page.left'; imhoaction.value='process-form';">
我尝试过做这样的事情,但没有运气。
document.getElementsByName('process-form').submit();
如果需要,我可以发布更多代码。谢谢!
答案 0 :(得分:6)
您还可以通过最新的浏览器发送自定义点击事件,并在IE中“触发”onclick
事件。这是最近的功能,允许大量控制事件。
var button = document.getElementById("test");
button.onclick = function()
{
alert("event was dispatched on me");
}
if(document.createEvent)
{
var click = document.createEvent("MouseEvents");
click.initMouseEvent("click", true, true, window,
0, 0, 0, 0, 0, false, false, false, false, 0, null);
button = document.getElementById("test");
button.dispatchEvent(click);
button.focus();
}else if(document.documentElement.fireEvent)
{
button = document.getElementById("test");
button.fireEvent("onclick");
button.focus();
}
请注意,您需要在发送事件之前先监听事件。
答案 1 :(得分:5)
想出来。需要使用.click()而不是.submit()。 我还需要添加[0]作为Georgy的建议。
document.getElementsByName('process-form')[0].click();
答案 2 :(得分:1)
试试这个文件.getElementsByName('process-form') [0] .submit();
UPD:对!必须是.click()而不是.submit()答案 3 :(得分:0)
在这里,您尝试提交输入,您必须提交表单。因此,如果您标记为#myForm的ID,则需要执行:document.getElementById('myForm').submit()
答案 4 :(得分:0)
另一种方法是在JQuery中使用.trigger( "submit" )
。