Javascript Rails4表单动态只读字段

Javascript Rails4表单动态只读字段,javascript,ruby-on-rails,ruby,Javascript,Ruby On Rails,Ruby,我有一个rails表单,需要根据用户单击的复选框将at字段设置为只读或非只读。到目前为止我有 <%= form_for @weight, remote: true do |f| %> <div class= "modal-body"> <input id="checkbox1" type="checkbox" onclick="ReadOnly()"></input> <%= f.label :weight_numbe

我有一个rails表单,需要根据用户单击的复选框将at字段设置为只读或非只读。到目前为止我有

<%= form_for @weight, remote: true do |f| %>
  <div class= "modal-body">
     <input id="checkbox1" type="checkbox" onclick="ReadOnly()"></input>
     <%= f.label :weight_number, class="control-label"%>
     <%= f.number_field :weight_number, :readonly => true, class="form-control"%>
  </div>
<% end %>
 <script>
    function ReadOnly(){
      if(document.getElementById('checkbox1').checked{ 
        //make the number field editable
      }
    }
 </script>

true,class=“form control”%%>
函数只读(){
if(document.getElementById('checkbox1').checked{
//使数字字段可编辑
}
}
有没有一个简洁明了的方法来解释为什么要这样做。我以前从未通过JavaScript操作过ruby行,但我想在:readonly=>true和:readonly=>false之间切换数字字段。

试试:

HTML:

<input type="checkbox" name="suspended" id="checkbox1" value="test"/>
<input type="number" name="weight_number" id="weight_number_id">
$(document).ready(function() {
  $("#checkbox1").change(function() {
    if (!this.checked) {
      $("#weight_number_id").attr('readonly', 'true');
    }
    else {
      $("#weight_number_id").removeAttr('readonly');
    }
  });
  //triger change event in case checkbox checked when user accessed page
  $("#checkbox1").trigger("change")
});
尝试:

HTML:

<input type="checkbox" name="suspended" id="checkbox1" value="test"/>
<input type="number" name="weight_number" id="weight_number_id">
$(document).ready(function() {
  $("#checkbox1").change(function() {
    if (!this.checked) {
      $("#weight_number_id").attr('readonly', 'true');
    }
    else {
      $("#weight_number_id").removeAttr('readonly');
    }
  });
  //triger change event in case checkbox checked when user accessed page
  $("#checkbox1").trigger("change")
});

这太棒了!我想我现在唯一的问题是如何在数字输入中显示当前值。这是rails中的一个编辑表单,正在使用该值填充,但现在使用新的html格式,我如何在字段中显示该值?别担心,我忘了在数字字段输入中添加值!谢谢您的帮助!@MeganWoodr如果您不需要更改html,请在字段中添加
id
并删除
read\u
,如
“weight\u number\u id”,class=“form control”%>
这很好!我想我现在唯一的问题是如何在数字输入中显示当前值。这是rails中的一个编辑表单,正在填充该值,但现在使用新的html格式,我如何在字段中显示该值?别担心,我忘了在数字字段输入中添加值!谢谢您的帮助!@MeganWoodruff您不需要更改html,在字段中添加
id
和删除
read\u only
,如
“weight\u number\u id”,class=“form control”%>