我想在页面从onclick回发之前拦截按钮的onclick事件(不提交)。
我遇到了一些麻烦:
$(document).ready() { function() {
function validate() {
...
}
var oldOnClick = $("input[value=OK]").attr("onclick");
$("input[value=OK]").attr("onclick", "if(!validate()) { return false; }" + oldOnClick));
});
最佳答案
如果仍然要处理按钮单击事件,而不是按照建议的所有形式提交表单提交事件,则可以使用匿名函数执行以下操作,以调用oldOnClick函数,并保留上下文和事件参数:
$(document).ready(function () {
function validate() {
// ...
}
var oldOnClick = $("input[value=OK]").get(0).onclick;
$("input[value=OK]").click(function (e) {
if(!validate()) {
return false;
}
oldOnClick.call(this, e); // enforce the context and event argument
});
});