微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – select2不保存编辑输入

由于某种原因,当用户进入编辑条目时,不会显示通过.select2输入的数据.数据已保存.
irb(main):001:0> Routine.find(1)
=> #<Routine id: 1,missed_days: 0,date_started: "2015-10-24 04:00:00",trigger: "brew tea",action: "stretch",user_id: 1,created_at: "2015-11-24 21:55:25",updated_at: "2015-12-14 21:00:09",committed: ["sun","mon","tue","wed","thu","fri","sat",""],days_challenged: 30>

show.html.erb

edit.html.erb

_form.html.erb

<%= simple_form_for(@routine,remote: request.xhr?,html: { data: { modal: true } }) do |f| %> 
  <%= f.date_select :date_started,:order => [:month,:day,:year],class: 'date-select' %>
  <%= f.collection_check_Boxes :committed,Date::ABBR_DAYNAMES,:downcase,:to_s %>
  <%= f.number_field :days_challenged,value: 30,class: 'day-challenge' %> <b>Day Challenge
  <label>After I</label> 
    <%= f.grouped_collection_select(:trigger,@trigger,:last,:first,:to_s,include_blank: true) %><font color="#DDD">,</font>
  <label>I will</label> 
    <%= f.grouped_collection_select(:action,@action,include_blank: true) %>.
  <%= button_tag(type: 'submit',class: "btn")  do %>
   Save
  <% end %>
<% end %>

<script>
  $("#routine_trigger").select2({
    placeholder: "Existing Habit (Optional)",theme: "classic",allowClear: false,tags: true,multiple: false,});
  $("#routine_action").select2({
    placeholder: "Enter Challenge",});
</script>

routines_controller

def new
    @trigger = 
    [
    ['Morning',['Get Out of bed','Clean Up Breakfast','Brush My Teeth','Sit at Desk','Start My Computer']],['Afternoon',['Drink Coffee','Read Email','Eat Lunch','Use the Bathroom','Go for a Walk']],['Evening',['Enter My Home','Eat a Snack','Make a Drink','Shower','Finish Dinner']]
    ]
    @action = 
    [
    ['Mind',['Write 500 Words','Read a Chapter','Study 20 min','Watch a Ted Talk','Take a Picture']],['Body',['Do 25 Pushups','Juice Cleanse','Walk 10,000 Steps','Exercise','Eat an Apple']],['Spirit',['Meditate','Write 3 Gratitudes','Journal','Not Complain','Do a Random Act of Kindness']]
    ]
    if current_user == nil
      @routine = Routine.new
    else
      @routine = current_user.routines.build
      respond_modal_with @routine
    end
  end

  def edit
    @trigger = 
    [
    ['Morning','Do a Random Act of Kindness']]
    ]
    respond_modal_with @routine
  end

解决方法

这是我在我的select2字段上所做的
<%= f.input :field_name,as: :select,collection: f.object.field_name,include_blank: false,selected: f.object.field_name,input_html: { class: "json_data" },%>

json_data是如何使文本字段进入选择2

咖啡

$('.json_datas').before ()->
    "<input name='#{@.name}' type='hidden' />"
  $('.json_data').select2
    allowClear: true,placeholder: "Select a value",ajax:
      url: '/api/call_to_data'
      dataType: 'json'
      delay: 250
      data: (params) ->
        {
          q: params.term
          page: params.page
        }
      processResults: (data,page) ->
        # parse the results into the format expected by Select2.
        # since we are using custom formatting functions we do not need to
        # alter the remote JSON data
        { results: data.items }
      cache: true

我希望这可以帮助你

原文地址:https://www.jb51.cc/js/153334.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐