我想在页面从onclick上回发之前拦截按钮的onclick事件(不提交)。
我遇到了一些麻烦:
$(document).ready() { function() {
function validate() {
...
}
var oldOnClick = $("input[value=OK]").attr("onclick");
$("input[value=OK]").attr("onclick", "if(!validate()) { return false; }" + oldOnClick));
});
答案 0 :(得分:7)
如果您仍然希望处理按钮单击事件而不是所有建议的表单提交事件,您可以使用匿名函数执行此类操作,以调用oldOnClick函数,保留上下文和事件参数:< / p>
$(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
});
});
答案 1 :(得分:4)
您应该使用submit event。
,而不是尝试拦截onClick事件为什么?简单,并非所有表单都是通过点击,标签,输入等提交的?
$("form").submit(function() { // do validation/stuff here });
可以解决问题。
您可以return false;
停止表单提交,或return true;
如果您想通过。在.submit
内进行验证。
答案 2 :(得分:0)
在表单提交之前调用OnSubmit。 您甚至可以取消该活动,因此不会提交表格。
答案 3 :(得分:0)