2015-11-16 14 views
5

Tôi đang sử dụng thành phần summernotes và những gì tôi muốn làm là tôi muốn ngăn người dùng thêm ký tự nếu s (anh ta) vượt quá 2000 ký tự nhưng tôi không thể tìm ra cách dừng sự kiện.Làm thế nào để vô hiệu hóa chỉnh sửa trong Summernotes?

Những gì tôi đang làm là như sau:

$(".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)); 
       } 
      }); 
     }); 

Bất cứ ý tưởng làm thế nào để làm điều đó, tôi không muốn tắt con trỏ hoặc phá hủy các summernote .. Tôi muốn để cho người sử dụng cảm thấy rằng (s) ông vẫn có thể chỉnh sửa nhưng nó sẽ không gõ bất cứ điều gì nếu văn bản vượt quá 2000 ký tự.

Cảm ơn !!

+0

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

+0

Tôi đã xem bài đăng này nhưng tôi không muốn hủy nó. Hủy bỏ các ghi chú mùa hè trong trường hợp này sẽ cho phép người dùng cảm thấy rằng (s), ông không thể chỉnh sửa một lần nữa cho đến khi (s), ông loại bỏ một chữ cái ví dụ. – Riad

+1

Những gì tôi cần chính xác là tùy chọn chỉ đọc cho bản tóm tắt – Riad

Trả lời

1

Nhìn vào số this link từ tài liệu chính thức của chúng.

Về cơ bản, những gì bạn cần làm là:

Bạn có thể tắt trình chỉnh sửa theo API.

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

Nếu bạn muốn bật lại trình chỉnh sửa, hãy gọi API khi bật.

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

Bây giờ, những gì bạn có thể làm là sử dụng các lệnh gọi API này trong logic/thuật toán mã của riêng bạn để đạt được hiệu quả mong muốn.

Tôi biết câu hỏi cũ của nó, nhưng hy vọng điều này sẽ hữu ích.

1

Tôi biết đây là câu hỏi cũ nhưng bạn có thể sử dụng vùng chứa của mình để tìm 'tiếp theo có thể chỉnh sửa' tiếp theo và đặt thuộc tính 'có thể chỉnh sửa' thành false. Đã làm cho tôi.

$('#summernote').next().find(".note-editable").attr("contenteditable", false); 
Các vấn đề liên quan