2
2

More than 5 years have passed since last update.

date_selectの日付フィールドを有効・無効化するサンプルスクリプト

Posted at

date_selectの年月日フィールドを有効・無効化するサンプルスクリプト

もっと1行で書けるような簡単な方法があるはず!!と思うけど、たどり着けなかったので・・・(そもそもdate_selectのようなダサいものは使われていない。ということ?)

スクリプト作成にあたり、ブラウザのソースからidを取得したけど、それもダサい気が...

# 指定したidのdate_selectを有効・無効化する.
date_disable=(date_id, disabled) ->
  # 年月日のみ対象.
  for i in [1..3]
    $("##{date_id}_#{i}i").attr('disabled', disabled)   

# checkboxのチェック状態で、date_idのdate_selectを有効無効にする
clicked_date_disable_checkbox=(date_id) ->
  check_box_id = "#options_#{date_id}_is_nil"
    $(check_box_id).click ->
      date_disable "model_#{date_id}", $(@).prop('checked')

$ ->
  date_ids = ['distribute_begin_date', 'distribute_end_date']
    clicked_date_disable_checkbox(date_id) for date_id in date_ids
# model/_form.html.slim
.field
  = f.label :distribute_begin_date
  = f.date_select :distribute_begin_date
  = f.label 'distribute_begin_date_is_nil'
  = check_box 'options', 'distribute_begin_date_is_nil', {}, true, false
.field
  = f.label :distribute_end_date
  = f.date_select :distribute_end_date
  = f.label 'distribute_end_date_is_nil'
  = check_box 'options', 'distribute_end_date_is_nil', {}, true, false
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2