web-dev-qa-db-ja.com

メタボックスの検証を確認するために[発行]ボタンをトラップする方法

私は自分のカスタムメタボックスで何らかのフォーム検証をやろうとしています、そして、Publishボタンを無効/有効にするためのjavascript関数についてどこかで読んでいるのを覚えています。

どちらでもいいですか

a)公開ボタンを有効/無効にする

b)[公開]がクリックされたら、それをトラップして更新を防ぎ、ユーザーに警告します。ただし、後で更新できるようにします。

E.preventDefault()とe.stopPropagationを使用して単純なクリックハンドラを試してみましたが、活気のあるアイコンが表示され、ボタンが終了しないため無効になったままです。

ありがとう

1
Adam M-W

ボタン操作を妨害してjQueryやjavascriptで検証するよりも、save_postアクションをフックしてphpで検証するほうが簡単であることがわかります(特定のpost_metaが存在するか正しいかを確認する)。アウトすると、投稿ステータスを「保留」に戻すことができます。これにより、[公開]ボタンが上書きされます。ページは単純にロードされます(保存されました)が、「公開」を行う前にエラーを修正する必要があります。

7
somatic

私は 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のロードアイコンを示しているため、それ以外の場合は問題なく機能します。

4
Atef