我们有一个脚本,通过向表单添加事件监听器来跟踪表单提交。问题是一个客户使用
通过链接提交表单<a href="javascript:document.formname.submit();">Submit</a>
忽略事件监听器。这是一个JSFiddle来演示:http://jsfiddle.net/XhLkG/
正如您所看到的,“提交”按钮会触发警报,而“提交”链接只是提交表单并绕过事件侦听器。
有没有办法继续触发事件监听器?
编辑:我们无法更改标记,因为它位于我们客户的主页上,他们已经嵌入了我们的脚本。对不起,如果我没说清楚的话。
答案 0 :(得分: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');
});
答案 1 :(得分:1)
答案 2 :(得分: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