1

我试图让我的 js 为我的网站工作,这样当用户选择一个文件来上传按钮上的文本时,事件调用者的兄弟会改变。不幸的是,我无法让它工作,并且由于我在 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.text是一个函数

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

idOfButtonSibling 是 idOfInput 的所有兄弟元素的数组。在更改文本之前,您必须选择一个元素。

我建议您为每个按钮分配唯一的 ID,并使用它们来引用特定的按钮。

试试这个,但这不是一个好习惯:

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

或者,

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

或者

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

等等...

于 2012-06-21T01:03:58.547 回答