简单表单输入字段,因为纯文本不能手动编辑

时间:2013-07-28 10:46:32

标签: ruby-on-rails ruby-on-rails-3.2 simple-form

我正在使用simple_forms gem为我的模型创建一个表单。

该模型包含一些字段,这些字段是基于其他字段的javascript计算的结果,因此我希望将它们表示为文本而不是输入字段,因此图形上它们似乎不可编辑且不让人困惑。

以下是我到目前为止的观点:

- field = "time_quantity"
  %strong{:id => "#{field}_str", :class => "text-success"}
    = f.object[field]
  = f.input field, as: :hidden, input_html: {value: f.object[field]}

%strong中的文本将值写为文本,后续输入字段是带有表单的模型中插入的内容。

此问题还在于,如果我为这些字段输入了错误的数据,我将不会在它们旁边看到任何错误通知,因为它将被隐藏。如下所示:

<strong class="text-success" id="time_quantity_str" data-original-title="" title=""></strong>
<div class="input hidden project_time_quantity field_with_errors">
  <input class="hidden input-medium" id="project_time_quantity" name="project[time_quantity]" type="hidden">
  <span class="error">can't be blank</span>
</div>

我想将此更改为:

- field = "time_quantity"
  %strong{:id => "#{field}_str", :class => "text-success"}
    = f.input field, as: :plain, input_html: {value: f.object[field]}

在视图和javascript中有更多DRY。

您认为有可能实现这一目标吗?

谢谢,

1 个答案:

答案 0 :(得分:1)

我认为您应该使用禁用的输入,或者您也可以使用标签字段。请尝试这样:

<%= f.input :field_name, disabled: true, hint: 'You cannot change this field' %>

<%= f.label :field_name %>

希望它会有所帮助。谢谢