1

我们有一个脚本,通过向表单添加事件监听器来跟踪表单提交。问题是一位客户通过使用链接提交表单

<a href="javascript:document.formname.submit();">Submit</a>

它忽略了事件监听器。这是一个 JSFiddle 来演示:http: //jsfiddle.net/XhLkG/

如您所见,提交按钮触发警报,而提交链接只是提交表单并绕过事件侦听器。

有没有办法仍然触发事件监听器?

编辑:我们无法更改标记,因为它位于我们客户的主页上,他们嵌入了我们的脚本。对不起,如果我没有说清楚。

4

3 回答 3

2

你可以使用这个:

var form = document.getElementsByClassName('form');
form[0].addEventListener("submit", function(e) {

    e.preventDefault();

    alert('event');

});
form[0].childNodes[3].addEventListener("click", function(e) {

    e.preventDefault();

    alert('event');

});
于 2013-05-27T08:46:40.363 回答
0

而不是使用 href 试试这个

<form method="post" name="formname" class="form">
    <input type="text" name="hello">
    <a onclick="javascript:document.formname.submit();">Submit</a>
    <input type="submit">
</form>

删除href并替换为onclick

于 2013-05-27T07:41:39.650 回答
0

使用 jquery 尝试以下操作:

$("form").submit(function (e) {
      e.preventDefault();

      alert('event');
});

参考这里

于 2013-05-27T08:31:21.653 回答