2016-12-11 8 views
0

は、またはどのように我々は自動的にsend_emailcollection_check_boxesに一致させることができます:committed日のチェックを外し、現在:committedcollection_check_boxesにオンまたはオフされているもの?collection_check_boxesの=のcollection_check_boxesユーザーかどうかをチェックし

たとえば、ユーザーがcommittedで「太陽」をチェックして「金」をオフにした場合、それらの変更も:send_emailに反映されます。

enter image description here

しかし、その逆はありません。

たとえば、ユーザーがチェックした日をsend_emailに変更した場合、JavaScriptは有効になりません。 :committedは、直接接触した場合のみ変更する必要があります。

enter image description here

<%= f.collection_check_boxes :committed, Date::ABBR_DAYNAMES, :downcase, :to_s, checked: ["mon", "tue", "wed", "thu", "fri"] %> 

<%= f.collection_check_boxes :send_email, Date::ABBR_DAYNAMES, :downcase, :to_s, checked: ["mon", "tue", "wed", "thu", "fri"] %> 

<script> 
</script> 

おかげjavascriptのお友達!

答えて

1

チェックボックスの各コレクションが同じ値(月曜日と月曜日)を持つと仮定すると、チェックボックスの各コレクションをdivにグループ化できます。

<div class="committed-check-boxes"> 
    <%= f.collection_check_boxes :committed, Date::ABBR_DAYNAMES, :downcase, :to_s, checked: ["mon", "tue", "wed", "thu", "fri"] %> 
</div> 

<div class="send-email-check-boxes"> 
    <%= f.collection_check_boxes :send_email, Date::ABBR_DAYNAMES, :downcase, :to_s, checked: ["mon", "tue", "wed", "thu", "fri"] %> 
</div> 

.committed-check-boxes divからのクリックだけを聞きます。一致するチェックボックスを.send-email-check-boxesから探し、propを使用してチェックをtrue/falseに設定します。

<script> 
    $('.committed-check-boxes input[type="checkbox"]').on('click', function() { 
    var checkbox = $(this); 

    $('.send-email-check-boxes') 
     .find('input[value="' + checkbox.val() + '"]') 
     .prop('checked', checkbox.prop('checked')); 
    }); 
</script> 
関連する問題