一旦我触发了event . preventdefault(),我如何再次恢复默认操作?
当前回答
这段代码为我重新实例化事件后,我已经使用:
event.preventDefault(); to disable the event.
event.preventDefault = false;
其他回答
这里没有一个解决方案对我有帮助,我这样做是为了解决我的情况。
<a onclick="return clickEvent(event);" href="/contact-us">
函数clickEvent(),
function clickEvent(event) {
event.preventDefault();
// do your thing here
// remove the onclick event trigger and continue with the event
event.target.parentElement.onclick = null;
event.target.parentElement.click();
}
你可以在你的脚本中使用这个附加到一些点击事件:
location.href = this.href;
用法示例如下:
jQuery('a').click(function(e) {
location.href = this.href;
});
好的!它适用于点击事件:
$("#submit").click(function(event){
event.preventDefault();
// -> block the click of the sumbit ... do what you want
// the html click submit work now !
$("#submit").unbind('click').click();
});
这不是对问题的直接回答,但它可能会帮助到一些人。我的观点是,你只根据某些条件调用preventDefault(),因为如果你对所有情况调用preventDefault(),就没有必要有一个事件。因此,只有在条件满足时才使用if条件和调用preventDefault(),才能在其他情况下以通常的方式运行该函数。
$('.btnEdit').click(function(e) {
var status = $(this).closest('tr').find('td').eq(3).html().trim();
var tripId = $(this).attr('tripId');
if (status == 'Completed') {
e.preventDefault();
alert("You can't edit completed reservations");
} else if (tripId != '') {
e.preventDefault();
alert("You can't edit a reservation which is already attached to a trip");
}
//else it will continue as usual
});
我建议采用以下模式:
document.getElementById("foo").onsubmit = function(e) {
if (document.getElementById("test").value == "test") {
return true;
} else {
e.preventDefault();
}
}
<form id="foo">
<input id="test"/>
<input type="submit"/>
</form>
...除非我遗漏了什么。
http://jsfiddle.net/DdvcX/
推荐文章
- 执行以字符串形式存储的JavaScript代码
- HTML表单上的默认提交按钮是如何确定的?
- 将JS对象转换为表单数据
- 如何有条件元素和保持干燥与Facebook React的JSX?
- 多模态叠加
- 我如何把变量javascript字符串?
- JavaScript -获得两个日期之间的分钟
- 如何检测URL是否在JavaScript哈希后发生了变化
- 如何在JavaScript中按类获取元素?
- 如何获得XMLHttpRequest的响应?
- 文本区域,可以做语法高亮在飞行?
- 如何从函数中禁用jQuery对话框中的按钮?
- 如何检查jQuery插件是否已加载?
- “你正在运行create-react-app 4.0.3,它落后于最新版本(5.0.0)”
- JS生成随机布尔值