已禁用的Haml字段未传递到我的rb文件

时间:2017-04-28 16:40:19

标签: ruby-on-rails ruby haml

我有一个包含一些输入字段的表单。这个表单首先从数据库中获取值并填充它们。如果它们有值,它们将被禁用。

=text_field_tag("dt|#{a_key}",(begin;a_mock["dt_open"];rescue;nil;end), :class => "form-control",  :disabled => a_mock["active"] == "true" )

在我的rb文件中,有一条规则可以验证日期。如果该字段为空白:

if !dt_open.blank?
   ...
end

我注意到,如果该字段被禁用,则不会发送。我知道,因为我打印的信息和字段都没有。 如何在haml中克服这种行为?

2 个答案:

答案 0 :(得分:1)

disabled attribute的输入不会提交,您可以使用readonly而不是disabled,执行几乎相同的操作,您无法更改或编辑输入字段值。< / p>

另一种解决方案

如果您仍想使用disabled attribute,则可以应用以下JavaScript以允许提交disabled

 <script>
     $('#your_form_id').submit(function() {
          $("#disabled_input_field_id").prop('disabled', false);
          //your code goes here
     })
 </script>

答案 1 :(得分:0)

您可以使用hidden_field_tag发布提交值。我也只是在p标签中打印该值而不是显示禁用的文本输入,但这只是我的看法。

- if a_mock["active"] == "true"
  = hidden_field_tag "dt|#{a_key}", a_mock["dt_open"]
  p= a_mock["dt_open"]
- else    
  = text_field_tag "dt|#{a_key}", a_mock["dt_open"], class: "form-control"