我正在尝试让我的js为我的网站工作,这样当用户选择一个文件上传按钮时,该按钮就是事件调用者的兄弟会改变。不幸的是我不能让它工作,因为我缺乏经验,我无法想出更好的方法。我最好的方法是它工作但文本输入的每个按钮上的文本都改变了。有人可以帮帮我吗?这是我的设置和我的咖啡代码:
编辑FIX:
在视图中:
.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!")
先谢谢!
答案 0 :(得分:0)
idOfButtonSibling.text
是一个函数
$(idOfButtonSibling).text("Photo Selected!")
答案 1 :(得分:0)
idOfButtonSibling是idOfInput的所有兄弟节点的数组。在更改文本之前,必须选择单个元素。
我建议您为每个按钮分配唯一ID,并使用它们来引用特定按钮。
试试这个,但这不是一个好习惯:
$(idOfButtonSibling[0]).text = "Photo Selected!"
,或者
$(idOfButtonSibling[1]).text = "Photo Selected!"
或
$(idOfButtonSibling[2]).text = "Photo Selected!"
依旧......