2016-02-13 2 views
0

Я использую javascript для жонглирования между ongoing и oneshot вызовами. Если пользователь нажимает на ongoing, например, тогда я хочу, чтобы :deadline был nil, но вместо этого :deadline по-прежнему по умолчанию по умолчанию, несмотря на то, что javascript скрывает :deadline.Как переопределить date_select, когда скрыты от просмотра?

<%= form_for(@challenge, html: { data: { modal: true } }) do |f| %> 

    <% Challenge::CATEGORY.each do |c| %>&nbsp; 
    <%= label(c, c) %> 
    <%= f.radio_button(:category, c, :class => "date-format-switcher", checked: (c=='One-Shot')) %> 
    <% end %> 

    <div id='id_of_first_div'> 
    <%= f.date_select :deadline, :order => [:month, :day, :year] %> 
    </div> 
    <div id='id_of_second_div'> 
    <%= f.date_select :date_started, :order => [:month, :day, :year] %> 
    </div> 
<% end %> 

<script> 
    $(function(){ 
    $('#id_of_second_div').hide() 
    $('#challenge_category_one-shot').click(function(){ $('#id_of_first_div').show(); $('#id_of_second_div').hide(); }); 
    $('#challenge_category_ongoing').click(function(){ $('#id_of_first_div').hide(); $('#id_of_second_div').show(); }); 
    }); 
</script> 
+0

ли вы имеете в виду, что значение передается от 'deadline' ввода до сих пор дата дней? - вам нужно либо удалить вход из формы, либо установить значение «». Простое скрытие ввода не изменяет то, что отправляется при отправке формы. – max

+0

Вы также можете установить атрибут 'disabled' - клиент не отправляет эти входы. https://www.w3.org/TR/html5/disabled-elements.html – max

+0

Yea @max Я хочу отключить ': крайний срок' каким-то образом, когда пользователь выключается из категории« onehot »и переходит в' ongoing', а я хотите отключить 'date_started', когда пользователь переключается другим способом. –

ответ

0

Форма входа с атрибутом disabled не посылается клиентом:

$(function(){ 
    $('#id_of_second_div').hide(); 
    $('#challenge_category_one-shot').click(function(){ 
     $('#id_of_first_div').show().attr('disabled', false); 
     $('#id_of_second_div').hide().attr('disabled', true); 
    }); 
    $('#challenge_category_ongoing').click(function(){ 
    $('#id_of_first_div').hide().attr('disabled', false); 
    $('#id_of_second_div').show().attr('disabled', true); 
    }); 
});