我遇到了event.preventDefault的奇怪问题。这在Chrome上工作正常,但不适用于Firefox。我知道很多人通过添加这样的事件arg来修复它:myFunction(事件),但这样做会使它停止在Chrome和Firefox上运行。有人可以帮助我在所有浏览器上使用此代码吗?
<script type="text/javascript">
function myFunction()
{
var asdf = $('input[name=payment_type]:checked', '#buy').val()
if (asdf == 'theRightOne') {
event.preventDefault()
alert("stuff")
}
}
</script>
答案 0 :(得分:0)
并非所有浏览器都符合W3C标准,因此它们有时会以不同方式处理事件。以下内容适用于大多数浏览器:
function eventHandler(e) {
console.log('click event:', e);
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;
}
}
function formSubmitDefault(e) {
console.log('form submit event:', e);
}
document.getElementById('input').onclick = eventHandler;
document.getElementById('form').addEventListener('submit', formSubmitDefault);
&#13;
<form action="#" id="form">
<input id="input" type="submit">
</form>
&#13;
这是一个有用的tutorial。