目前默认情况下,best_in_place可以作为
编辑前
一旦处于编辑模式,它就像
我想要的是之前的编辑就像常规(香草)引导输入
并且在编辑模式下,它看起来像是编辑常规输入框
不幸的是,我所有组合css和javascript的尝试都失败了..
我无法将吞没div设置为.form-control,因为它看起来像
我无法弄清楚在点击字段时要听什么事件(焦点/模糊不起作用..点击工作但我需要点击一下类型事件(是否有这样的事件) 听取更改事件只会在字段更改时起作用,但是当单击它但尚未更改时它会行为错误
这是一个jsfiddle http://jsfiddle.net/E8W4X/5/来模拟编辑之前(带文本的.form-control)和编辑模式(表单自动注入div.form-control)
小提琴有best_in_place javascript
小提琴中的编辑模式是当你点击Tim
时会发生什么我想要的是看起来像“所需样式”中的输入框,它基本上是一个普通的输入框
这里是来自jsfiddle
的html<div class="row">
<div class="col-lg-2">
<div class="panel">
<fieldset>
<div class="form-group">
<label>before edit mode</label>
<div class="form-control">
Tim
</div>
<label>edit mode</label>
<div class="form-control">
<form class="form_in_place" action="javascript:void(0);" style="display:inline">
<input type="text" name="first_name">
</form>
</div>
</div>
</fieldset>
</div>
</div>
</div>
答案 0 :(得分:3)
您不需要JavaScript或新的CSS类来解决此问题。宝石supports additional attributes to the options hash。您想添加:inner_class
来更改表单字段的类。 Bootstrap使用CSS类.form-control
来应用其自定义外观。
我的解决方案将在HAML中,但在ERB或SLIM中也可以如此。
= best_in_place @user, :name, type: :input, inner_class: 'form-control'
You can even apply attributes globally to all bip form fields.
答案 1 :(得分:2)
好的,我终于成功了。
所以,看看我所做的是搜索它创建输入框的位置,并将类形式控件添加到它@ line#317
output.parents('div.form-control').removeClass('form-control');
并在模糊@ line#336之前添加回来
event.target.closest( 'DIV')addClass( '形式控制');
jQuery(event.target).closest('div').addClass('form-control');
以下是 fiddle