@@ -101,6 +101,41 @@ jQuery(document).ready(function($) {
101
101
102
102
// Handler before submitting
103
103
$ ( frm ) . triggerHandler ( 'BeforeDiscussionSubmit' , [ frm , btn ] ) ;
104
+ var maxCommentLength = $ ( frm ) . find ( 'input:hidden[name$=MaxCommentLength]' ) ;
105
+ var defaultValues = [
106
+ undefined ,
107
+ null ,
108
+ '' ,
109
+ '[{\"insert\":\"\\n\"}]'
110
+ ] ;
111
+
112
+ var editorContainer = $ ( frm ) . find ( '.EasyMDEContainer' ) ;
113
+ var messageContainer = $ ( frm ) . find ( '.editor-statusbar .message' ) ;
114
+ var textbox = $ ( frm ) . find ( 'textarea#Form_Body' ) ;
115
+ var currentVal = $ ( textbox ) . val ( ) ;
116
+ currentVal = gdn . normalizeText ( currentVal ) ;
117
+ if ( defaultValues . includes ( currentVal ) || currentVal . trim ( ) . length == 0 ) {
118
+ $ ( editorContainer ) . addClass ( 'error' ) ;
119
+ $ ( messageContainer ) . text ( 'Cannot post an empty message' ) ;
120
+ $ ( frm ) . find ( ':submit' ) . attr ( 'disabled' , 'disabled' ) ;
121
+ $ ( frm ) . find ( '.Buttons a.Button:not(.Cancel)' ) . addClass ( 'Disabled' ) ;
122
+ return false ;
123
+ }
124
+
125
+ if ( currentVal . length > maxCommentLength . val ( ) ) {
126
+ $ ( editorContainer ) . addClass ( 'error' ) ;
127
+ var count = currentVal . length - maxCommentLength . val ( ) ;
128
+ $ ( messageContainer ) . text ( 'Discussion is ' + count + ' characters too long' ) ;
129
+ $ ( frm ) . find ( ':submit' ) . attr ( 'disabled' , 'disabled' ) ;
130
+ $ ( frm ) . find ( '.Buttons a.Button:not(.Cancel)' ) . addClass ( 'Disabled' ) ;
131
+ return false ;
132
+ }
133
+
134
+ $ ( editorContainer ) . removeClass ( 'error' ) ;
135
+ $ ( messageContainer ) . text ( '' ) ;
136
+ $ ( frm ) . find ( ':submit' ) . removeAttr ( "disabled" ) ;
137
+ $ ( frm ) . find ( '.Buttons a.Button' ) . removeClass ( 'Disabled' ) ;
138
+
104
139
105
140
var inpDiscussionID = $ ( frm ) . find ( ':hidden[name$=DiscussionID]' ) ;
106
141
var inpDraftID = $ ( frm ) . find ( ':hidden[name$=DraftID]' ) ;
0 commit comments