2017-02-15 32 views
0

我正在編寫一個已經編碼的項目,我必須添加一些功能。它簡單,有5天,每個天就有這個組織:Ruby on rails複選框有條件檢查和禁用表單內容

screenshot

但是我有一個問題。在原始項目中,例如,當用戶點擊「Matin」時,輸入小時數可用於寫入,如果不是,則輸入框被禁用。這裏是工作的代碼:

<div class="col-md-2 col-sm-2 col-xs-12 check_<%= day %>_morning"> 
      <label style="font-weight: normal !important; color: #337ab7;"> 
      <% if !scheduler.object.morning_isEmpty? %> 
      <%= check_box_tag day, 'yes', true, class: 'day_morning' %> 
      <% else %> 
      <%= check_box_tag day, 'yes', false, class: 'day_morning' %> 
      <% end %> 
      Matin</label> 
      </div> 

      <div class="all-scheduler col-md-3 col-sm-3 col-xs-12 none-label <%= day %>_form_morning <% if scheduler.object.morning_isEmpty? %> disabledcontent <% end %>"> 

      <%= scheduler.input :begin_hour_morning, input_html: { type: 'number', min: 0, max: 23 }, class: day + '_form_morning' %>&nbsp;h&nbsp;&nbsp; 
      <%= scheduler.input :begin_min_morning, input_html: { type: 'number', min: 0, max: 59 }, class: day + '_form_morning' %> 
      </div> 
      <div class="all-scheduler col-md-1 col-sm-1 col-xs-12 <%= day %>_form_morning day_form <% if scheduler.object.morning_isEmpty? %> disabledcontent <% end %>"> 
      <div class="mobile-slash"> /</div> 
      </div> 
      <div class="all-scheduler col-md-3 col-sm-3 col-xs-12 none-label <%= day %>_form_morning <% if scheduler.object.morning_isEmpty? %> disabledcontent <% end %>"> 
      <%= scheduler.input :end_hour_morning, input_html: { type: 'number', min: 0, max: 23 }, class: day + '_form_afternoon' %>&nbsp;h&nbsp;&nbsp; 
      <%= scheduler.input :end_min_morning, input_html: { type: 'number', min: 0, max: 59 }, class: day + '_form_afternoon' %> 
      </div> 
     </div> 
     <br> 
     <div class="row"> 
      <div class="col-xs-12 col-md-2 col-sm-2"></div> 
      <div class="col-md-4 col-sm-4 col-xs-12 check_<%= day %>_rdv_morning <% if !scheduler.object.morning_isEmpty? %> disabledcontent <% end %>"> 
      <%= scheduler.check_box :morning_rdv, {class: 'rdv' } %> 
      <label style="font-weight: normal !important; color: #337ab7;"> Matinée sur rendez-vous </label> 
      </div> 
     </div> <br> <br> 

和模型:

def morning_isEmpty? 
    return (begin_hour_morning.nil? || begin_min_morning.nil? || 
     end_hour_morning.nil? || end_min_morning.nil?) 
    end 

,這裏是我複製/代碼從以前的代碼粘貼並不起作用(當我檢查「 JOURNEE完成」複選框領域仍然被禁用):

   <div class="row space-allday"> 
     <div class="col-md-2 col-sm-2 col-xs-12"> 
     </div> 
     <div class="col-md-2 col-sm-2 col-xs-12 check_<%= day %>_all_day"> 
      <label style="font-weight: normal !important; color: #337ab7;"> 
      <% if !scheduler.object.all_scheduler_is_empty? %> 
      <%= check_box_tag day, 'yes', true, class: 'day_all' %> 
      <% else %> 
      <%= check_box_tag day, 'yes', false, class: 'day_all' %> 
      <% end %> 
      Journée complète</label> 
     </div> 

     <div class="all-scheduler col-md-3 col-sm-3 col-xs-12 none-label <%= day %>_form_allday <% if scheduler.object.all_scheduler_is_empty? == true %>disabledcontent <% end %>"> 

      <%= scheduler.input :day_begin_hour, input_html: { type: 'number', min: 0, max: 23 }, class: day + '_form_allday' %>&nbsp;h&nbsp;&nbsp; 
      <%= scheduler.input :day_begin_min, input_html: { type: 'number', min: 0, max: 59 }, class: day + '_form_allday' %> 
     </div> 
     <div class="all-scheduler col-md-1 col-sm-1 col-xs-12 <%= day %>_form_allday day_form <% if scheduler.object.all_scheduler_is_empty? == true %>disabledcontent <% end %>"> 
      <div class="mobile-slash"> /</div> 
     </div> 
     <div class="all-scheduler col-md-3 col-sm-3 col-xs-12 none-label <%= day %>_form_allday <% if scheduler.object.all_scheduler_is_empty? == true %>disabledcontent <% end %>"> 
      <%= scheduler.input :day_end_hour, input_html: { type: 'number', min: 0, max: 23 }, class: day + '_form_allday' %>&nbsp;h&nbsp;&nbsp; 
      <%= scheduler.input :day_end_min, input_html: { type: 'number', min: 0, max: 59 }, class: day + '_form_allday' %> 
     </div> 
     </div> 
     <br> 
     <div class="row"> 
     <div class="col-xs-12 col-md-2 col-sm-2"></div> 
     <div class="col-md-4 col-sm-4 col-xs-12 check_<%= day %>_rdv_allday"> 
     <%= scheduler.check_box :day_rdv, :class => 'rdv' %> 
     <label style="font-weight: normal !important; color: #337ab7;"> Journée sur rendez-vous </label> 
     </div> 
     </div> 

和模型:

def all_scheduler_is_empty? 
return (day_begin_hour.nil? || day_begin_min.nil? || 
    day_end_hour.nil? || day_end_min.nil?) 

是否有人可以幫助我提高了代碼,並找到問題?

+0

對我來說,它看起來基本上是相同的代碼,只是對於Journée你輸入了另一個檢查<%if!scheduler.object.morning_isEmpty? %>在第一個示例中 –

+0

@KcUS_unico是代碼是相同的,但不是結果,因爲當我單擊複選框時,字段仍處於禁用狀態,不像第一個代碼示例 –

+0

,如果那些禁用並在取消選中/檢查時動態啓用複選框,它將需要JS,不僅在工作的例子中,ruby – mswiszcz

回答

0

So..I沒有足夠的積分,只是發表評論,我不知道這將是正確的答案,但... 在第一個代碼,你有這樣一行:

<% if scheduler.object.morning_isEmpty? %> 

並且在第二個版本中有:

<% if scheduler.object.all_scheduler_is_empty? == true %> 

當您進行雙重真相檢查時會發生什麼?如果第一種方式起作用,爲什麼add == true?

+0

如果沒有'== true',它仍然不起作用 –