   actual: ->
     switch @rqType
       when 'long_text'
-        # Use ckeditor if available, else use textarea value (usually just on startup).
-        ckeditor = @ckeditorInstance()
-        content = if ckeditor then ckeditor.getData() else @rqElement.find('div.control textarea').val()
-
         # Strip wrapping <p> tag for comparison.
-        content.trim().replace(/(^<p>|<\/p>$)/ig, '')
+        @longTextContent().trim().replace(/(^<p>|<\/p>$)/ig, '')
 
       when 'integer', 'decimal', 'counter'
         parseFloat(@rqElement.find("div.control input[type=number]").val())


    # These handlers must be set dynamically based on rqElement.
    @rqElement.find('div.control').find('input, select, textarea').on('change', => @checkAndTell())
    @rqElement.find("div.control input[type=text]").on('keyup', => @checkAndTell())
    @rqElement.find("div.control input[type=number]").on('keyup', => @checkAndTell())
    if @rqType == 'long_text'
      @ckeditorInstance().on('change', => @checkAndTell())

    # Set result to initial value on page load. Don't refresh because the manager calls refresh just
    # once on page load (if we 'tell' when each checker initializes, the manager would evaluate many times)

      when 'select_one', 'select_multiple' then @condition.optionNodeId
      else @condition.value

  longTextContent: ->
    # Use wysiwyg editor if available, else use textarea value (usually just on startup).
    if @textarea().trumbowyg
      @textarea().trumbowyg('html')
    else
      @textarea().val()

  textarea: ->
    @rqElement.find('div.control textarea')
