如何使preventDefault适用于所有浏览器
How can I get preventDefault to work for all browsers?
我对event.preventDefault有一个奇怪的问题。这在Chrome上运行良好,但在Firefox上不起作用。我知道很多人通过添加这样的事件参数来修复它:myFunction(event),但这样做会使它在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>
并非所有浏览器都符合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);
<form action="#" id="form">
<input id="input" type="submit">
</form>
这里有一个有用的教程。
相关文章:
- Angularjs ng-options 问题仅适用于 Chrome 浏览器
- Backbone Project适用于除Firefox之外的所有浏览器
- 是否有适用于iOS和Android浏览器的性能指南
- jquery在页面加载时淡入适用于除IE以外的所有浏览器
- html 选择列表更改无法在谷歌浏览器上调用方法(适用于 IE)
- GULP:如何在不刷新的情况下更新浏览器(仅适用于 CSS 更改)
- Jquery适用于IE以外的所有浏览器
- 未在火狐浏览器的选择列表中选择值(适用于chrome,safari,opera)
- Android WebView 不适用于默认浏览器,但适用于 Chrome
- 在上传之前在页面上预览图像,它适用于除IE之外的所有浏览器
- 如何设置适用于HTML5浏览器和旧浏览器的type=date输入的默认值
- 谷歌地图V3 JavaScript仅适用于Chrome浏览器
- JavaScript for Each循环适用于除Internet Explorer之外的所有Web浏览器
- 这适用于IE,但不适用于chrome.如何使它在所有浏览器中都能工作
- 它适用于jsFiddle,但不是在我的浏览器(FF, Chrome)
- jQuery滑块适用于除Chrome 15以外的所有浏览器.调整Chrome 15浏览器窗口大小时再次工作
- keyup()适用于webkit浏览器,但不适用于Firefox或IE
- CSS仅适用于iPhone和普通浏览器
- JQuery .animate()仅适用于Chrome浏览器
- Bookmarklet适用于除Firefox以外的所有浏览器