2013-07-28 32 views
0

我正在使用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]} 

有更多DRY在视图中,在JavaScript。

您认为可以做到这一点?

感谢,

回答

1

我觉得要么你应该使用禁用的输入,也可以使用标签字段作为well.Try这样的:

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

<%= f.label :field_name %> 

希望它将帮助。谢谢

+0

谢谢,第一个选项有点解决它,虽然图形不是我正在寻找。也许我可以改变输入字段的外观和感觉,看起来像一个标签?你会知道如何通过bootstrap获得这个吗? –

相关问题