Javascript Rails4表单动态只读字段
我有一个rails表单,需要根据用户单击的复选框将at字段设置为只读或非只读。到目前为止我有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
<%= 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”%>