2014-03-02 126 views
1

这似乎是一个简单的问题,我只是到处都找不到正确的答案,所以我想我会在这里向所有美好的乡亲计算器:jquery文件选择事件触发器?

我想创建触发器当用户在jQuery脚本从他们的电脑中选择一个文件。这只需要从文件选择行为触发,而不是完成/提交文件。该网站建立在rails上,并使用file_field来选择文件。

任何想法这将是什么语法?我希望有一些简单而直接的方法可以用来完成这个任务。

回答

3

简单地做:

$("YOUR_FILE_SELECTOR_NAME").on('change',function() { 
    alert('FILE SELECTED'); 
}); 

如果你使用J-查询版本低于1.7,你可以这样做:

$("YOUR_FILE_SELECTOR_NAME").change(function() { 
    alert('FILE SELECTED'); 
}); 
+1

完美的感谢! – user3180105

+0

不客气,亲爱的。 ;) –

0

你应该能够设定一个点击事件处理程序上得到的是,file_field生成,即在jQuery:

jQuery("#id-of-field-that-is-generated").change(function(){...}); 

由于您使用rails,您可能也使用coffeescript(或应该定)在这种情况下,你会打电话:

jQuery("#id-of-field-that-is-generated").change, -> 
    #do stuff here 
+0

如果您在输入字段上放置文件不起作用。 – giorgian

+0

够公平的!你可以改变'点击'到'改变',这应该在删除文件时起作用。 – Sean

0

一个解决办法可能是使用:

<input type="file" name="upload" id="upload"/> 

$('#upload').change(function() { 
    if ($(this).val().length != 0) { 
     //file selected 
    } 
});