已更新
Html代码:
<input type="textbox" id="textbox" value="">
<input type="button" id="btn" value="Validate" onclick="document.write('VALIDATION PASSED')" />
JS代码:
$(document).ready(function() {
$("#btn").click(function() {
if ($("#textbox").val().length == 0) {
alert("Validation error");
return false;
}
}).prop("onclick", null );
})
我已更新了我的代码。所以问题是在第一次点击后我的onclick事件停止了工作。我怎么能解决它?
P.S。请不要更改HTML代码。我有一些理由要问它,但请你能用javascript做吗?我意识到这可能不是最简单的方法,但我的应用程序中存在一些技术限制。
谢谢!
JSFiddle http://jsfiddle.net/B5GWx/12/
答案 0 :(得分:7)
$(document).ready(function() {
$("#btn").click(function() {
alert("Want to show only this message");
return false;
}).prop("onclick", null );
})
答案 1 :(得分:2)
您无法可靠地跨浏览器使用DOM2处理程序来阻止DOM0处理程序运行。
你可以做的是完全删除DOM0处理程序:
$(document).ready(function() {
var btn = $("#btn");
btn.click(function() {
alert("Want to show only this message");
return false;
});
btn[0].onclick = null; // <==== Here
});
答案 2 :(得分:1)
只需删除DOM处理程序即可完成此任务。无需return false;
或e.preventDefault();
$(document).ready(function() {
$("#btn").click(function(e) {
alert("Want to show only this message");
}).prop("onclick", null );
})
答案 3 :(得分:-3)
您正在寻找preventDefault
说明:如果调用此方法,则不会触发事件的默认操作。
$(document).ready(function() {
$("#btn").click(function(e) {
alert("Want to show only this message");
e.preventDefault();
})
})