10

私はしばらく summernote エディターを使用してきましたが、私が必要としていたほとんどのことで機能しています。ただし、最近、ユーザーの操作後に無効にしたい (破棄しない) ようにしました。成功しなかった努力の後、destroy() メソッドを使用して目的を達成できることに気づきました。Summernote は、書き込み領域を無効にして、既に無効になっているテキスト領域をエディターに切り替えていることに気付きました。これが私が最終的にやったことです:

作成後に summernote を無効にするには: 最初にそれを破棄し、次にターゲット要素を無効にし、最後に再初期化しました:

    $(".summernoteTarget").destroy();

    $(".summernoteTarget").prop('disabled', true );

    $(".summernoteTarget").summernote();

再度有効にするために、最初に以前のように破棄し、次にターゲット要素を有効にして、最後に再初期化しました。

    $(".summernoteTarget").destroy();

    $(".summernoteTarget").prop('disabled', false );

    $(".summernoteTarget").summernote();

これは小さな問題でトリックを行いました.「無効」状態のままの場合、すべてのコントロールが無効になるわけではなく、書き込み領域のみが無効になります。そのため、ユーザーはファイルを書き込み領域にドラッグすることはできますが、これによりエラーが発生します。

Summernote のソースを見て、destroy() に加えて 2 つのメソッド ( disable と enable ) を追加して、次のようなことができるようにした人はいますか?

     $(".summernoteTargetElement").disable();
     $(".summernoteTargetElement").enable();

ありがとう。

4

4 に答える 4

4

これは私のために働いた:

// The class note-editable is generated by summernote

// To enable
$('.note-editable').attr('contenteditable', true);

// To disable
$('.note-editable').attr('contenteditable', false);

ソース: https://github.com/summernote/summernote/issues/61

これが誰かを助けることを願っています:)

于 2016-01-20T20:30:43.447 に答える
4

v0.7.3 以降、API を使用してエディターを無効または有効にすることができます。

// To disable
$('.summernote').summernote('disable');
// To enable
$('.summernote').summernote('enable');

http://summernote.org/deep-dive/#disable-enable

于 2016-01-21T01:38:44.270 に答える
1

あなたがまだこれを必要としているかどうかはわかりません。私は次のことをしています:

$('#textarea').destroy();
                    $('#textarea').prop('disabled', true);
                    $('#textarea').summernote({
                        minHeight: null,
                        maxHeight: null,
                        focus: true,
                        styleWithSpan: false,
                        toolbar: [
                        ]                         
                    });

有効にする

$('#textarea').destroy();
                    $('#textarea').prop('disabled', false);
                    $('#textarea').summernote({
                        minHeight: null,
                        maxHeight: null,
                        focus: true,
                        styleWithSpan: false,
                        toolbar: [
                            ['style', ['bold', 'italic', 'underline', 'clear']],
                            ['para', ['ul', 'ol']]
                        ]
                    });

textarea は、summernote を適用した領域です。

しかし、この後、ページを投稿するときに code プロパティに問題があります。

于 2015-06-03T11:35:50.740 に答える
0

私の状況では、2 つの summernote リッチ テキスト エディター用のクラス セレクターを作成したいと考えていました。1 つが有効になり、もう 1 つが無効になります。

これを達成するには、このアプローチを使用できます

// This is in a razor view using MVC

// Enabled
@Html.TextAreaFor(i => i.Explanation, new {@class = "summerNote" })


// Disabled
@Html.TextAreaFor(i => i.Explanation, new {@class = "summerNote-disabled" })

テキスト領域を使用すると、後でテキスト領域に表示するときに、保存されたリッチ テキスト コードを解釈できます。

summerNote リッチ テキスト エディターを作成すると、要素は summernote に変換されず、定義された要素の下に新しい要素が作成されます。さまざまな要素を調べると、DOM でこれを確認できます。

エディターを無効にするには

// In javascript
$('.summerNote-disabled+.note-editor .note-editable').attr('contenteditable', false)

これにより、summerNote として定義した要素が選択され、note-editor 兄弟が取得されます。その兄弟内には、メモ編集可能なテキストエリアが存在します。これは、'contenteditable' 属性を false に設定したい要素です。

于 2016-11-25T18:52:52.953 に答える