           $form.submit()
       origRendered?.apply(@, arguments)
 
+      # Set a delayed promise for loading the form to prevent submissions before the delay due
+      # to change events fired from the dropdown.
+      _.delay(=> @loadDf.resolve Q.when(@data?.docPromise?).then =>
+          Logger.debug('Loaded form', formArgs.name)
+          @
+        , formArgs.loadDelay ? 1000)
+
       schemaInputs = Form.getSchemaInputs(@)
-
       popupInputs = []
       hasRequiredField = false
       _.each schemaInputs, (input, key) ->

          return null
      singular.toLowerCase()

    # Return the Form to be used as a Template.
    return Form



          # Prevent change events in the inputs during loading from submitting the form until
          # the doc promise is resolved and the form is considered loaded.
          return false if Q.isPending(Form.whenLoaded(template))

          # TODO(aramk) This can result in modifier being empty and fail during submission.
          # TODO(aramk) Sometimes form fields are skipped when retrieving their values.
