这真的很奇怪:
$('form').on('submit', function(event) {
console.log('submit > this=%o', this);
});
提交表单时不会显示任何控制台消息,但是:
$('form').on('submit', function(event) {
console.log('submit > this=%o', this);
event.preventDefault();
});
将展示它。这是为什么?在任何情况下都必须执行代码,以便preventDefault
有效!
我只在Chrome中测试过,我会说这是Chrome漏洞。或者我错过了吗?
答案 0 :(得分:5)
代码实际上有效,问题是由于表单提交而重新加载页面,因此立即清除控制台。
代码event.preventDefault();
阻止了表单的提交。这就是未清除控制台的原因,您可以看到正在记录的文本。
答案 1 :(得分:0)
按预期工作:)
$('form').on('submit',function(e){
console.log('hell',this)
})

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="http://www.google.com" method="POST">
Field:<br>
<input type="text" name="firstname">
<input type="submit" name="submit">
</form>
&#13;