IE7& IE8在* submittion之前不会触发onsubmit javascript *

时间:2012-05-11 14:47:07

标签: javascript forms internet-explorer-8 internet-explorer-7 submit

我有一个搜索表单:

<form class="searchForm" id="topSearchForm" action="/search.ds">

附加了onsubmit事件,触发javascript。此javascript的目的是在根据特定条件提交表单之前清空某些表单字段。

要明确,需要发生的事情是:

  

用户输入 - &gt;用户点击搜索按钮(或按“输入”) - &gt; Javascript运行 - &gt;字段被清除 - &gt;表格已提交

这完全符合IE7和IE8中除之外的所有浏览器的预期效果。 javascript运行但由于某种原因,表单提交在之前完成字段被javascript清除。这会导致提交的页面包含应该清除的字段中的数据。

我只能控制UI的某些部分,并且在提交表单后无法处理任何内容。出于可用性目的,在用户提交表单之前填写这些字段(应该清除)非常重要。

为什么IE7和IE中的内部逻辑不同? IE8(IE9和“所有其他浏览器”都可以正常工作?有没有办法绕过这个问题?

以下是一些澄清的代码:

我将事件附加到表单:

var formElement = document.getElementById("topSearchForm");
[...]
formElement.attachEvent('onsubmit', function() {clearForSubmit()});

并且定义了clearForSubmit,并且触发。

2 个答案:

答案 0 :(得分:1)

你可以在js

中尝试这样的事情
<form onsubmit="clearForSubmit(); return false;">

这不会提交表格,您可以在用

清除表格后提交表格
form_name.submit();

答案 1 :(得分:0)

使用onclick事件代替onsubmit,然后在代码中的函数末尾提交表单。