jquery文件选择事件触发器?

时间:2014-03-02 20:54:31

标签: jquery ruby-on-rails input

这似乎是一个简单的问题,我无法在任何地方找到正确的答案,所以我想我会在stackoverflow上问所有精彩的人:

我想创建一个jquery脚本,当用户从他们的计算机中选择一个文件时触发该脚本。这只需要从文件选择操作触发,而不是完成/提交文件。该网站建立在rails上,并使用file_field来选择文件。

任何想法是什么语法?我希望有一些简单明了的东西可以用来完成这个。

3 个答案:

答案 0 :(得分:3)

简单地说:

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

如果使用小于1.7的J-Query版本,则可以执行以下操作:

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

答案 1 :(得分:0)

您应该能够在生成的file_field上设置click事件处理程序,即在jQuery中:

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

由于你正在使用rails,你可能也在使用coffeescript(或应该是!),在这种情况下你可以调用:

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

答案 2 :(得分:0)

一种解决方案可能是使用:

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

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