Jquery Wordpress:钩住更新后按钮或表单进行验证

Jquery Wordpress:钩住更新后按钮或表单进行验证,jquery,wordpress,button,Jquery,Wordpress,Button,我想取消某些情况下的后期更新而无需重新加载整个页面 我试过: // publish is the id of the Update button. $('#publish').click(function(){ return false; }); // post is the id of the corresponding form. $('#post').submit(function(){ return false; }); 在这两种代码中,表单未提交,但更新按钮仍处于

我想取消某些情况下的后期更新而无需重新加载整个页面

我试过:

// publish is the id of the Update button.
$('#publish').click(function(){
    return false;
});

// post is the id of the corresponding form.
$('#post').submit(function(){
     return false;
});
在这两种代码中,表单未提交,但更新按钮仍处于禁用状态,并显示ajax加载程序gif


我怎么能做到?提前感谢。

我认为,因为WordPress在该元素上已经有了一个事件处理程序,所以它返回什么并不重要,它只是同时启动两个偶数处理程序。试试这个:

$('#publish').click(function (event) {
    event.stopPropagation();
});
您是否也尝试过:

jQuery(document).ready(function($) {
    $('#post').submit(function(e) {
        e.preventDefault();

        $('.ajax-loading').hide();
        $('#publish').removeAttr("disabled"); 
    });
});

抱歉,这是不可能的-它在当前WordPress版本中中断了自动保存。您可以向WP提交补丁或坚持使用其他解决方案。

最后,在回答我问题的人的帮助下(特别是对Stealthynija),我设法实现了我的要求

@karevn:此解决方案不会破坏当前WordPress版本(测试版本为3.2.1)中的自动保存功能


@生锈的牛仔裤:谢谢你的回答,但这对我不起作用。我也尝试过在点击处理程序主体中使用return false,但没有任何结果。@karevn:你确定吗?jQuery中没有任何黑客可以做到这一点?使用
e.preventDefault()停止提交,但它一直显示ajax加载程序,更新按钮也保持禁用状态。@diosney:请参阅更新--它应该隐藏ajax加载程序并为您重新启用更新按钮。@stealthyninja:这不起作用,但为我提供了更多的测试示例,帮助我找到实现所需的方法。感谢您的帮助+1;)是的,没有。但是,如果我按Enter键或使用其他方式提交表单,验证将不会运行。所以你需要处理“提交”。我试图在那里添加我的处理程序,结果在我的案例中破坏了autosave。
$('#publish').click(function(e) {
    if (!condition) {

        // Fix WordPress display to user.
        $('#ajax-loading').hide();
        $('#publish').removeClass('button-primary-disabled');               

        return false;
    }     
});