Rails5.1.3でWebアプリケーション制作の勉強をしています。
パスワードの編集欄の横に「変更する」、「変更しない」ボタンを切り換えて表示するようにしたいのですが「変更する」ボタンをクリックしても「変更しない」の表示に切り替わりません。
編集ページを開くと「変更する」の表示はされていて表示を切り替えるようにコードを記述
したつもりですが、切り替わらないのでどなたか教えていただけないでしょうか?宜しくお願いします。
コードは以下になります。
app/presenters/customer_form_presenter.rb class CustomerFormPresenter < UserFormPresenter def password_field_block(name, label_text, options = {}) if object.new_record? super(name, label_text, options) else markup(:div, class: 'input-block') do |m| m << decorated_label(name, label_text, options.merge(required: false)) m << password_field(name, options.merge(disabled: true)) m.button('変更する', type: 'button', id: 'enable-password-field') m.button('変更しない', type: 'button', id: 'disable-password-field', style: 'display: none') m << error_messages_for(name) end end end end
app/assets/javascripts/admin/customer_form.js.coffee $(document).on 'turbolinks:load', -> $('form.edit_form').on 'click', '#enable-password-field', -> $('#enable-password-field').hide() $('#disable-password-field').show() $('#form_customer_password').removeAttr('disabled') $('label[for=form_customer_password]').addClass('required') $('form.edit_form').on 'click', '#disable-password-field', -> $('#disable-password-field').hide() $('#enable-password-field').show() $('#form_customer_password').attr('disabled', 'disabled') $('label[for=form_customer_password]').removeClass('required')
追記
Rails5ではturbolinks5.xに対応していないとのことなので調べて得たコードでき術してみました。
app/assets/javascripts/admin/customer_form.js.coffee $(document).on('turbolinks:load', function() { $('form.edit_customer').on 'click', '#enable-password-field', -> $('#enable-password-field').hide() $('#disable-password-field').show() $('#customer_password').removeAttr('disabled') $('label[for=customer_password]').addClass('required') $('form.edit_customer').on 'click', '#disable-password-field', -> $('#disable-password-field').hide() $('#enable-password-field').show() $('#customer_password').attr('disabled', 'disabled') $('label[for=customer_password]').removeClass('required') }); toggle_home_address_fields = -> checked = $('input#form_inputs_home_address').prop('checked') $('fieldset#home-address-fields input').prop('disabled', !checked) $('fieldset#home-address-fields select').prop('disabled', !checked) $('fieldset#home-address-fields').toggle(checked)
としたところ以下のエラーが発生して解決できずにいます。
ExecJS::RuntimeError in Admin::Top#index Showing /home/vagrant/fujiyoshi/edamame/app/views/layouts/admin.html.erb where line #7 raised: SyntaxError: [stdin]:1:35: reserved word 'function' Extracted source (around line #7): 5 <%= csrf_meta_tags %> 6 7 <%= stylesheet_link_tag "admin", media: "all", "data-turbolinks-track" => true %> 8 <%= javascript_include_tag "admin", "data-turbolinks-track" => true %> 9 </head>
どなたかご教示お願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。