根据下拉列表中选择的值设置datetimepicker格式

时间:2016-01-12 13:37:48

标签: javascript jquery ruby-on-rails datepicker haml

我希望datetimepicker仅显示用户选择" Days"在下拉菜单中显示月份,如果用户选择"月份"。

代码在haml文件中:

= select_tag 'date_format', options_for_select(["Days", "Months"]), onchange: "myFunction()"

= text_field_tag :from, class: 'datepick'

 :javascript
  function myFunction() {
      var value = document.getElementById("date_format").value;
      if (value == "Days") {
        $(".datepick").datepicker("destroy");
        $(".datepick").datetimepicker({
          format: 'd.m.Y'
        });
      } else if (value == "Months") {
        $(".datepick").datetimepicker("destroy");
        $(".datepick").datepicker({
          format: "mm/yyyy"
        });
      }
  }

现在它不能很好地运作。请帮我找出我弄错的地方。如何覆盖(" .datepick")?

2 个答案:

答案 0 :(得分:0)

尝试使用'dateFormat'和'formatDate'选项代替'format'

答案 1 :(得分:0)

我找到的唯一选择是创建另一个text_field_tag并隐藏/显示它:

= text_field_tag :from, class: 'datepick'
= text_field_tag :from, class: 'datetimepick'

:javascript
  function myFunction() {
      var value = document.getElementById("date_format").value;
      if (value == "Days") {
        $(".datepick").hide();
        $(".datetimepick").show();
        $(".datetimepick").datetimepicker({
          format: 'd/m/Y'
        });
      } else if (value == "Months") {
        $(".datetimepick").hide();
        $(".datepick").show();
        $(".datepick").datepicker({
          format: "mm/yyyy"
        });
      }
  }