私は、画像からの迷惑メールのための奇妙な修正があります。 model_auto_completer
のオプションハッシュに:after_update_element => "trimSelectedItem"
を追加しました(これは3つのうち最初のハッシュです)。私trimSelectedItem
は、適切なサブ要素を検索し、要素値のためにその内容を使用しています。
function trimSelectedItem(element, value, hiddenField, modelID) {
var span = value.down('span.display-text')
console.log(span)
var text = span.innerText || span.textContent
console.log(text)
element.value = text
}
しかし、これはその後、抵触デフォルトでは、すぐにテキストとして戻ってテキストを変更:allow_free_text
オプションの走ります内部のテキストがリストの「有効な」項目でない場合、ボックスはフォーカスを失います。だから私は、オプションのハッシュ(再び、最初のハッシュ)に:allow_free_text => true
を渡すことによって、あまりにも、それをオフにする必要がありました。私は本当にそれが残っていると思う。
だから、自動入力補完を作成するために私の現在の呼び出しは次のようになります。
<%= model_auto_completer(
"line_items_info[][name]", "",
"line_items_info[][id]", "",
{:url => formatted_products_path(:js),
:after_update_element => "trimSelectedItem",
:allow_free_text => true},
{:class => 'product-selector'},
{:method => 'GET', :param_name => 'q'}) %>
や製品/ index.js.erbは次のとおりです。
<ul class='products'>
<%- for product in @products -%>
<li id="<%= dom_id(product) %>">
<%= image_tag image_product_path(product), :alt => "" %>
<span class='display-text'><%=h product.name %></span>
</li>
<%- end -%>
</ul>