所以我把我的問題簡化成了一段HTML代碼,供大家自己嘗試。取消HTML onSubmit事件
我相信這是在Firefox 3.6中工作,但在更新的版本中,它似乎不再起作用。它也不適用於IE9或Firefox Nightly。
<html>
<head>
<title>Test</title>
</head>
<script type="text/javascript">
function newEvent() {
var myEvent = document.createEvent("MouseEvents");
myEvent.initEvent("click", false, false);
getElementById('Test').dispatchEvent(myEvent);
}
</script>
<body>
<form action="" onSubmit="newEvent();return false;">
<input name="OK" type="submit" value="OK" />
<input id="Test" name="Test" type="button" onClick="alert('Success!');" value="Test" />
</form>
</body>
</html>
我得到的問題是表單正在提交到頁面,當我不希望它是。我試過「返回false」,我試過「event.preventDefault();」。如果您評論dispatchEvent行,則其他一切按預期工作。我導致相信由於某種原因派發新事件(點擊)似乎允許onSubmit事件繼續。
您可以通過點擊「確定」來測試自己,這應該在onSubmit上觸發。預期的行爲是爲「測試」按鈕生成單擊事件,然後通過「返回false」取消onSubmit事件。部分。
任何有識之士將不勝感激。
謝謝Jared。你已經用我提供的例子解決了這個問題。不幸的是,這不是我的原始代碼的問題,但我會仔細看看,並嘗試使用您提供的示例代碼來捕捉錯誤。 – Nathan