2015-11-16 6 views
5

私はsummernotesコンポーネントを使用しています。私がしたいことは、s(he)が2000文字を超えている場合にユーザーに文字を追加しないようにしたいのですが、タイピングイベントを停止する方法を理解できませんでした。私がやっている何Summernotesでの編集を無効にするにはどうすればよいですか?

は、次のようなものです:

$(".note-editable").each(function(){ 
      $(this).on("keyup", function(){ 
       var cc = $(this).text().length; 
       var arr = $(this).next().attr("class").split('_'); 
       var q = "q"+arr[0]; 
       var maxChar = arr[2]; 
       var textarea = $('*[name^="'+q+'"]'); 
       var diffChar = parseInt(maxChar - cc); 

       if(diffChar >= 0) 
       { 
        $(this).next().text(diffChar + " Remaining out of " + maxChar); 
       } 
       else 
       { 
        $(this).next().text("0 Remaining out of " + maxChar); 

        //$(textarea).prop('disabled', true); 
        $(this).text($(this).text().slice(0,diffChar)); 
       } 
      }); 
     }); 

私はカーソルを無効にするかsummernoteを破壊したくない、それを行うためにどのように任意のアイデア..私は、ユーザーがいることを感じるようにしたいです彼はまだ編集することができますが、テキストが2000文字を超える場合は何も入力しません。

ありがとうございます!

+0

http://stackoverflow.com/a/30618954/1132405 – dyaa

+0

私はこの投稿を見ましたが、私はそれを破壊したくありません。この場合のSummernoteを破棄すると、たとえば1文字を削除するまでユーザーは再び編集できないと感じることができます。 – Riad

+1

私が正確に必要とするものは、summernote – Riad

答えて

1

公式文書からthis linkをご覧ください。

基本的に、何をする必要がある:

あなたはAPIにより、エディタを無効にすることができます。

$('#summernote').summernote('disable'); 

エディタを再度有効にする場合は、enable APIを呼び出します。

$('#summernote').summernote('enable'); 

は今、何ができるか、望ましい効果を得るために、独自のコードのロジック/アルゴリズムにおけるこれらのAPI呼び出しを使用しています。

私はその古い質問を知っていますが、これが役立つことを願っています。

1

これは古い質問ですが、コンテナを使用して次の '.note-editable'を見つけ、 'contenteditable'属性をfalseに設定することができます。私のために働いた。

$('#summernote').next().find(".note-editable").attr("contenteditable", false); 
関連する問題