2011-08-30 60 views
1

我想取消某些情況下的帖子更新,而無需重新加載整個頁面。WordPress的:鉤後更新按鈕或表格進行驗證

我已經試過:

// 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; 
}); 

在這兩個代碼它不提交表單,但更新按鈕保持禁用,而阿賈克斯裝載機GIF被顯示。

我該怎麼做?提前致謝。

回答

1

最後,在那些回答我的問題的人(特別是stealthyninja)的幫助下,我設法使我所要求的工作。

@karevn:此解決方案不破自動保存在當前的WordPress版本(測試可達3.2.1)。

$('#publish').click(function(e) { 
    if (!condition) { 

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

     return false; 
    }  
}); 
+0

是的,它沒有。但如果我通過按Enter鍵或使用其他方式提交表單,驗證將不會運行。所以你需要處理「提交」。我嘗試添加我的處理程序,並在我的情況下打破了自動保存。 – karevn

1

我認爲,因爲WordPress已經在該元素上有一個事件處理程序,所以它返回的並不重要,它只是觸發兩個處理程序。試試這個:

$('#publish').click(function (event) { 
    event.stopPropagation(); 
}); 
+0

__ @生鏽的牛仔褲:__感謝您的答案,但這並不適合我。我也試着在click處理程序體中返回false,但沒有任何結果。 – diosney

1

你也試試:

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

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

感謝您的時間,但這並沒有奏效。 – diosney

+0

@diosney:請嘗試更新我的代碼示例。 – stealthyninja

+0

使用'e.preventDefault();'停止提交,但它一直顯示ajax加載器並且更新按鈕保持禁用狀態。 – diosney

0

對不起,這是不可能的 - 它打破了自動保存在當前使用的WordPress版本。您可以向WP提交補丁或粘貼到其他解決方案。

+1

__ @ karevn__:你確定嗎? jQuery中沒有任何技巧可以做到這一點? – diosney

+0

jQuery或WordPress? – diosney