0

私は次の非常に単純なフォームを持っています。

<%= form_for(@position) do |f| %>
  <div class="field">
    <%= f.label :name %><br />
    <%= f.autocomplete_field :name, autocomplete_position_name_positions_path %>
  </div>
<% end %>

<script type="text/javascript" charset="utf-8">
  $('#name').bind('railsAutocomplete.select', function(event, data){
    /* Do something here */
    alert(data.item.id);
  });
</script>

オートコンプリートはすべてうまく機能しますが、alert(..)メソッドは呼び出されません。私はこの JavaScript のすべてに非常に慣れていないので、誰かが私を正しい方向に向けることができれば非常に感謝しています. コンパイルされたソースは次のようになります。

<form accept-charset="UTF-8" action="/positions" class="new_position" id="new_position" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="Sw+3CMXWmEPPYCNeCsAfNRX2DupZzZglMNSAnC4yDV4=" /></div>
  <div class="field">
    <label for="position_name">Name</label><br />
    <input data-autocomplete="/positions/autocomplete_position_name" id="position_name" name="position[name]" size="30" type="text" />
  </div>
</form>
<script type="text/javascript" charset="utf-8">
  $('#name').bind('railsAutocomplete.select', function(event, data){
    /* Do something here */
    alert(data.item.id);
  });
</script>

どうもありがとう、みんな!

4

1 に答える 1

2

あなたの入力にはID「名前」がありますか?そのIDは「name」だけでなく「position_name」のようです。に変更$("#name")してみてください$("#position_name")

于 2012-08-06T13:51:27.047 に答える