禁用的 Haml 字段未传递到我的 rb 文件
Disabled Haml field is not passed to my rb file
我有一个表单,其中有一些输入字段。这个表单,首先从数据库中获取值并填写它们。如果它们有值,它们将被禁用。
=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 中的这种行为?
您可以使用 hidden_field_tag
来 post 提交时的值。我也只是在 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"
输入 disabled
attribute
将不会提交,您可以使用 readonly
而不是 disabled
,做了几乎相同的事情,您无法更改或编辑输入字段值.
另一种解决方案
如果您仍想使用 disabled
attribute
您可以应用以下 javascript 以允许提交 disabled
<script>
$('#your_form_id').submit(function() {
$("#disabled_input_field_id").prop('disabled', false);
//your code goes here
})
</script>
我有一个表单,其中有一些输入字段。这个表单,首先从数据库中获取值并填写它们。如果它们有值,它们将被禁用。
=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 中的这种行为?
您可以使用 hidden_field_tag
来 post 提交时的值。我也只是在 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"
输入 disabled
attribute
将不会提交,您可以使用 readonly
而不是 disabled
,做了几乎相同的事情,您无法更改或编辑输入字段值.
另一种解决方案
如果您仍想使用 disabled
attribute
您可以应用以下 javascript 以允许提交 disabled
<script>
$('#your_form_id').submit(function() {
$("#disabled_input_field_id").prop('disabled', false);
//your code goes here
})
</script>