Rails5.1.7でアプリケーションの製作をしています。
アカウントの編集フォームを作成しているのですが、password の入力欄の横に「変更する」ボタンを設置し、その「変更する」をクリックすると、「変更しない」と表示が切り替わるようにしたいのです。
現状は、「変更する」と表示されています。しかし、そこをクリックしても「変更しない」の表示に切り替わってくれないのです。
関連するコードは以下になります。
app/assets/javascripts/admin.js //= require jquery //= require rails-ujs //= require jquery.turbolinks //= require jquery-ui //= require turbolinks //= require jquery-ui/widgets/datepicker //= require jquery-ui/i18n/datepicker-ja //= require_tree ./shared //= require_tree ./admin
Gemfile gem 'coffee-rails', '~> 4.2' gem 'turbolinks', '~> 5' gem 'jquery-rails' gem 'jquery-ui-rails' gem 'jquery-turbolinks'
app/presenters/client_form_presenter.rb class ClientFormPresenter < FormPresenter 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
app/assets/javascripts/admin/client_form.js.coffee $(document).on 'turbolinks:load', -> $('form.edit_client').on 'click', '#enable-password-field', -> $('#enable-password-field').hide() $('#disable-password-field').show() $('#client_password').removeAttr('disabled') $('label[for=client_password]').addClass('required') $('form.edit_client').on 'click', '#disable-password-field', -> $('#disable-password-field').hide() $('#enable-password-field').show() $('#client_password').attr('disabled', 'disabled') $('label[for=client_password]').removeClass('required')
以上のようになっています。エラーも出ていないので何が原因かわからず、解決が出来なくてこまっています。
app/presenters/client_form_presenter.rbの読み込みは出来ているのでapp/assets/javascripts/admin/client_form.js.coffeeのファイルに問題があると考えています。
turbornks が発火していないのか、コードに間違いがあるのかわからないのでどなたか解決方法のご教授お願いします。
あなたの回答
tips
プレビュー