这似乎是一个简单的问题,我无法在任何地方找到正确的答案,所以我想我会在stackoverflow上问所有精彩的人:
我想创建一个jquery脚本,当用户从他们的计算机中选择一个文件时触发该脚本。这只需要从文件选择操作触发,而不是完成/提交文件。该网站建立在rails上,并使用file_field来选择文件。
任何想法是什么语法?我希望有一些简单明了的东西可以用来完成这个。
答案 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
}
});