2

フロントエンド送信フォームのリソースボックスでこのコードを組み合わせる方法を見つけようとしていますが、特定の文字数に制限する必要があります。

<?php wp_editor( get_option('resource'), 'resource', array('textarea_name' => 'resource', 'class'=>'requiredField', 'textarea_rows'=>'6','id'=>'resource' ,'onkeyup'=>'countChar(this)','media_buttons' => false)  );?><?php if(isset($_POST['resource'])) { if(function_exists('stripslashes')) { echo stripslashes($_POST['resource']); } else { echo $_POST['resource']; } } ?>

このコードは、フィールドが空かどうかをチェックします。

<?php if(isset($_POST['resource'])) { if(function_exists('stripslashes')) { echo stripslashes($_POST['resource']); } else { echo $_POST['resource']; } } ?>

wp_editor 関数内でそのチェックを行うにはどうすればよいですか? リソースボックス内のhtmlをユーザーに許可して簡素化するには、これが必要です...

これは、内部で ('onkeyup'=>'countChar(this)') を使用している JavaScript 関数ですが、機能していません。

ここで私は落ちていますか?

4

2 に答える 2

1

まず、wp_editor の実装を修正する必要があります。コードは次のようになります。

<?php wp_editor( get_option('resource'), 'resource', array('textarea_name' => 'resource', 'editor_class'=>'requiredField', 'textarea_rows'=>'6', 'media_buttons' => false)  );?>

wp_editor 関数は JavaScript メソッドの引数を受け入れないことに注意してください。また、'editor_class' のパラメーターはありますが、'class' 自体はありません。

次に、キーアップ イベント (またはキーダウン イベント) を TinyMCE エディターにバインドする必要があります。これは、エディタの初期化時に行う必要があります。この他の Q&Aは、その解決策を見つけるのに役立ちました。functions.php ファイルに次のようなものを追加する必要があります。

add_filter( 'tiny_mce_before_init', 'wpse24113_tiny_mce_before_init' );
function wpse24113_tiny_mce_before_init( $initArray )
    {
        $initArray['setup'] = <<<JS
                [function(ed) {
                ed.onKeyDown.add(function(ed, e) {
                   if(tinyMCE.activeEditor.editorId=='resource') || (tinyMCE.activeEditor.editorId=='the_other_editor_id_you_want_to_limit') {
                        countChar(tinyMCE.activeEditor.getContent());
                     }
                });
            }][0]
            JS;
    return $initArray;
    }

これにより、TinyMCE の初期化が変更され、イベントが追加されます。イベントが発生すると (キーが押されると)、関数はアクティブなエディターの ID をチェックして、文字数を制限したいエディターの 1 つであるかどうかを確認します。次に、エディタのコンテンツを取得して countChar 関数に渡します。

于 2012-09-30T04:39:37.257 に答える