How to set html on data-disable-with to rails submit_tag

前端 未结 4 946
感情败类
感情败类 2021-02-04 00:20

I have a RoR app using bootstrap. I\'m trying to apply the fontawesome html icon tag to a submit_tag helper, but it does not seem to be supported. When I click submit, the disa

4条回答
  •  不思量自难忘°
    2021-02-04 00:37

    I've been using Rails for almost 10 years and I just stumbled across disable_with... neat!

    You may also use the content_tag helper if you'd rather not insert raw HTML... for example (Simple Form):

    = form.button :button,
                  t('.submit'),
                  class: 'btn btn-primary btn-block', \
                  data: { \
                    disable_with: [
                      content_tag(:span, '', class: 'spinner-grow spinner-grow-sm'), \
                      content_tag(:span,'Please wait...') \
                    ].join \
                  }
    

    Of course its probably cleaner to refactor into a helper...

    # frozen_string_literal: true
    
    module ApplicationHelper # :nodoc:
      def disable_with_element(text = t('please_wait'))
        [
          content_tag(:span, '', class: 'spinner-grow spinner-grow-sm'),
          content_tag(:span, text)
        ].join
      end
    end
    
    = form.button :button,
                  t('.submit'),
                  class: 'btn btn-primary btn-block', \
                  data: { \
                    disable_with: disable_with_element \
                  }
    

    Note, I'm using Simple Form and Slim in these examples.

提交回复
热议问题