Javascript 如何让fireEvent方法在IE8中工作?
我正在尝试使用IEs fireEvent方法提交表单。下面是一些简单的测试代码:Javascript 如何让fireEvent方法在IE8中工作?,javascript,Javascript,我正在尝试使用IEs fireEvent方法提交表单。下面是一些简单的测试代码: <html> <head> <script type="text/javascript"> function fireSubmit () { if (document.createEventObject) { var event = document.createEventObject (); var fired = document.fo
<html>
<head>
<script type="text/javascript">
function fireSubmit () {
if (document.createEventObject) {
var event = document.createEventObject ();
var fired = document.forms['fireForm'].fireEvent("onsubmit", event);
alert("event fired: " + fired + "; event returnValue: " + event.returnValue);
}
}
</script>
</head>
<body>
<button onmouseover="fireSubmit();">
Hover to submit
</button>
<form name="fireForm" action="action.html" method="post">
<input type="submit" name="submit" value="submit">
</form>
</body>
</html>
从
请注意,手动触发事件不会生成与该事件关联的默认操作。例如,手动触发焦点事件不会导致元素接收焦点(必须使用其焦点方法),手动触发提交事件不会提交表单(使用提交方法),手动触发键事件不会导致该字母出现在焦点文本输入中,手动触发链接上的点击事件不会导致链接被激活,等等
fireEvent方法不会提交您的表单;它将触发附加到该事件的任何事件处理程序。表单的提交方法将提交表单
这就是你想做的吗
function fireSubmit () {
var fired = document.forms['fireForm'].submit();
alert("event fired: " + fired + "; event returnValue: " + event.returnValue);
}
谢谢你的回答。但事实并非如此。首先,submit()方法实际上并没有返回要激发的值,其次,我不确定在您的示例中event.returnValue是如何分配的。我在问题中添加了一个非IE工作示例。
if (document.createEvent) {
var event = document.createEvent("HTMLEvents");
event.initEvent("submit", false, false);
var returnValue = document.forms['fireForm'].dispatchEvent(event);
alert("event returnValue: " + returnValue);
}
function fireSubmit () {
var fired = document.forms['fireForm'].submit();
alert("event fired: " + fired + "; event returnValue: " + event.returnValue);
}