如何使用`disabled`属性停止表单输入?

时间:2016-02-27 00:51:33

标签: javascript ruby-on-rails ruby

客户端不会发送带有disabled属性的表单输入。

但由于某些原因,#id_of_first_div#id_of_second_div正在发送,尽管在#challenge_category_one-shot#challenge_category_ongoing之间切换了单选按钮。

_form

<%= form_for(@challenge)  do |f| %>
  <%= f.text_field :action %>
  <% Challenge::CATEGORY.each do |c| %>
    <%= 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 %>
  </div>

  <div id='id_of_second_div'>
    <%= f.date_select :date_started %>
  </div>

<% end %>

<script>
  $(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', true); 
       $('#id_of_second_div').show().attr('disabled', false);
     });
  });
</script>

单选按钮HTML

<input class="date-format-switcher" type="radio" value="One-Shot" checked="checked" name="challenge[category]" id="challenge_category_one-shot" />

<input class="date-format-switcher" type="radio" value="Ongoing" name="challenge[category]" id="challenge_category_ongoing" />

1 个答案:

答案 0 :(得分:1)

“具有禁用属性的表单输入不会被客户端发送。” &lt; = 这不正确。

“已禁用” NOT 表示“不发送到服务器”。这意味着“不允许用户与之交互”。

如果您希望不将值发送回服务器,则需要从树中删除该元素。