# File lib/cgikit/elements/submit.rb, line 41
    def invoke_action( request, context )
      ask(:submit_should_invoke_action) do |d|
        return unless d.submit_should_invoke_action
      end

      take_value(:action, false)
      take_value(:direct_action, false)
      take_value(:action_class)

      result = nil
      if value_from_request(request, context) then
        if @values[:action] then
          result = @root[@values[:action]]
          notify_existing_action_to_form
        elsif @values[:direct_action] or @values[:action_class] then
          result = perform_direct_action(request, @values[:action_class],
                                         @values[:direct_action])
          notify_existing_action_to_form
        end
      end
      result
    end