web-dev-qa-db-ja.com

バックエンド管理メニューのJS/JQueryフォーム検証

コース情報を管理するためのプラグインを作成していますが、追加した新しいメタボックスにフォームの検証を追加するのに苦労しています。

誰かが管理メニューにJS/JQuery検証を置く良い方法を持っていますか?

ありがとう

2
danbrown

正常に動作しました。私はこれについてウェブ上で何も見つけることができなかった、実際にはうまくいったが、私が望んでいたほどには良い解決策ではなかった。私は、メインプラグインがどのようにそれを行っているのかを調査しましたが、直感に反するカスタムJSの方法をいくつか見つけました。

とにかく成功最後にJQueryライブラリを使用して動作するようになりました。特定のページをターゲットにする必要があるため、スクリプトをフッターに入れました。

add_action('admin_footer', 'cpd_validator', 999);

function cpd_validator(){

    global $post;
    if($post->post_type == 'courses' || $post->post_type == 'presentations'){

        // page specific validation here...
        wp_enqueue_script('form_validation', plugins_url('form-validation/jquery.validate.min.js', __FILE__));
        wp_enqueue_script('calibrate', plugins_url('form-validation/calibrate.js', __FILE__));
    }
}

Jquery.validate.min.jsは、 です 。調整スクリプトは次のようになります。

jQuery(function(){

    // Initialise the validator
jQuery('#post').validate();

    // Add the rules to the classname hooks
jQuery.validator.addClassRules({
    max_100: {
         maxlength: 100
    },
    max_4000: {
        maxlength: 4000
    },
    number: {
        number: true
    }

});

そして、定義したクラスをメタボックスの実際のフォーム要素に追加しました。

<label for="subject">Subject: </label>
<input type="text" class="max_100" value="<?php echo $subject; ?>" name="subject" id="subject" >

そしてそれはうまくいきました:)

4
danbrown