我有一个搜索表单:
<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,并且被触发。
答案 0 :(得分:1)
你可以在js
中尝试这样的事情<form onsubmit="clearForSubmit(); return false;">
这不会提交表格,您可以在用
清除表格后提交表格form_name.submit();
答案 1 :(得分:0)
使用onclick
事件代替onsubmit
,然后在代码中的函数末尾提交表单。