私は自分のカスタムメタボックスで何らかのフォーム検証をやろうとしています、そして、Publishボタンを無効/有効にするためのjavascript関数についてどこかで読んでいるのを覚えています。
どちらでもいいですか
a)公開ボタンを有効/無効にする
b)[公開]がクリックされたら、それをトラップして更新を防ぎ、ユーザーに警告します。ただし、後で更新できるようにします。
E.preventDefault()とe.stopPropagationを使用して単純なクリックハンドラを試してみましたが、活気のあるアイコンが表示され、ボタンが終了しないため無効になったままです。
ありがとう
ボタン操作を妨害してjQueryやjavascriptで検証するよりも、save_post
アクションをフックしてphpで検証するほうが簡単であることがわかります(特定のpost_metaが存在するか正しいかを確認する)。アウトすると、投稿ステータスを「保留」に戻すことができます。これにより、[公開]ボタンが上書きされます。ページは単純にロードされます(保存されました)が、「公開」を行う前にエラーを修正する必要があります。
私は jQuery Tools Validatorを使用しています
$("#publish").click(function(event){
//validating
var inputs = $(".TTWForm-container :input").validator();
//check if not valid stop loading ajax icons
if( ! inputs.data("validator").checkValidity()){
event.stopImmediatePropagation();
}
}
このコードは、発行ボタンがクリックされると起動し、フォームが有効かどうかを確認します。そうでない場合は、すべてのイベントの伝播を停止します。これはAjaxのロードアイコンを示しているため、それ以外の場合は問題なく機能します。