1

ユーザーがファイルを選択してアップロードするときに、イベントの呼び出し元の兄弟であるボタンのテキストが変更されるように、js を自分の Web サイトで機能させようとしています。残念ながら、私はそれを機能させることができず、js の経験が浅いため、より良い方法を思いつくことができません。私の最善のアプローチはそれを機能させましたが、ファイル入力のあるすべてのボタンでテキストが変更されました。誰かが私を助けてくれますか?これが私のセットアップと私のコーヒーコードです:

修正して編集:

ビューで:

.assets-fields.pull-left.span3
  - count=0
  = f.simple_fields_for :assets do |builder|
    - if builder.object.new_record?
      .file-wrapper.pull-left
        .btn.btn-warning
          %span.icon-camera
          .photo-text{:id => "asset_#{count}"} Choose a Photo
          - count = count + 1
          = builder.file_field :photo

私のjs.coffeeで:

$ ->
  $("input:file").change (event) ->
    idOfInput = event.target.id
    console.log idOfInput
    idOfSibling = $('#' + idOfInput).prev().attr('id')
    console.log idOfSibling
    $('div#' + idOfSibling).text("Photo Selected!")

ありがとうございます!

4

2 に答える 2

0

idOfButtonSibling は、idOfInput のすべての兄弟の配列です。テキストを変更する前に、1 つの要素を選択する必要があります。

各ボタンに一意の ID を割り当て、それを使用して特定のボタンを参照することをお勧めします。

これを試してみてください。ただし、これは良い習慣ではありません。

$(idOfButtonSibling[0]).text = "Photo Selected!"

また、

$(idOfButtonSibling[1]).text = "Photo Selected!"

また

$(idOfButtonSibling[2]).text = "Photo Selected!"

等々...

于 2012-06-21T01:03:58.547 に答える
0

idOfButtonSibling.text関数です

$(idOfButtonSibling).text("Photo Selected!")
于 2012-06-21T01:02:58.783 に答える