我想要一个可以添加两件东西的组件。首先,为用户提供反馈,以查看剩余的字符数(后来通过JS更新)。其次,要使用JS的输入的属性(字段限制)。
我已经关注this,而且几乎只是从one的内置组件中复制/粘贴。反馈显示正确,但输入中不存在:maxlength
。
module SimpleForm
module Components
module CharCounter
def char_counter(wrapper_options = nil)
if options[:char_counter].present?
input_html_options[:maxlength] = limit
"<span>#{limit - object.read_attribute(attribute_name).length }</span>".html_safe
end
end
def has_char_counter?
char_counter.present?
end
end
end
end
wrapper.rb
...
b.optional :char_counter, wrap_with: { tag: 'p', class: 'help-block text-right' }
...
html输出
<div class="form-group string required activity_name">
<label class="string required control-label" for="activity_name">
Name <abbr title="required">*</abbr>
</label>
<input class="string required form-control" type="text" value="" name="activity[name]" id="activity_name">
<p class="help-block text-right">
<span>73</span>
</p>
</div>
谢谢!
答案 0 :(得分:0)
因此,经过几天的SimpleForm代码挖掘后,我意识到了这一点 元素顺序非常重要
wrapper.rb
b.optional :char_counter, wrap_with: { tag: 'p', class: 'help-block text-right' }
必须在
之前b.use :input