1

私のレールアプリケーションでは、ajaxリクエストを送信して作成メールフォームをロードしています

私のcompose.jsファイルのコードは

$('#main').html("<%= j render :partial =>"smails/form" %>");

今私の作成フォームでは、ajax なしでフォームをロードするときに正常に動作する jquery オートコンプリート プラグインを使用してオートコンプリート フィールドを実装しました。これは、 document.readyを使用しているためだと思いますが、他のものの使用方法がわかりません。

autocomlete.js.coffee ファイルのコード

$(document).ready ->
  split = (val) ->
    val.split /,\s*/
  extractLast = (term) ->
    split(term).pop()
  $('#smail_receiver').autocomplete
             source: "/autocomplete/users"
             search: ->
               term = extractLast(@value)
               false  if term.length < 2
             focus: ->
               false
             select: (event,ui) ->
               terms = split(@value)
               terms.pop()
               terms.push ui.item.value
               terms.push ""
               @value = terms.join(",")
               false

私もdocument.onを試しました

4

1 に答える 1

1

「on」バインディングを使用することでおそらくより良い方法がありますが、次のように呼び出すことができます。

$('#smail_receiver').autocomplete

フォームを作成する ajax 呼び出しの成功メソッドで。フォームがレンダリングされた後に、それを compose.js ファイルに入れることもできます。

上記のように、おそらくもっときちんとした解決策がありますが、これでうまくいきます。

于 2012-04-14T06:42:59.237 に答える