输入类型文件是两次onchange()

时间:2016-05-24 16:04:29

标签: javascript jquery filter

我有这个脚本

更新

/*on document ready*/
$(function() {
UploadFile();
}

function UploadFile(){
    $('#formarea').on('change', '.btn-file :file', function() {
        var input = $(this),
        numFiles = input.get(0).files ? input.get(0).files.length : 1,
        label = input.val().replace(/\\/g, '/').replace(/.*\//, '');
        input.trigger('fileselect', [numFiles, label]);
        alert('test');/*this showing two time*/
    });
    $('#formarea').on('fileselect','.btn-file :file', function(event, numFiles, label) {
        var input = $(this).parents('.input-group').find(':text'),
        log = numFiles > 1 ? numFiles + ' files selected' : label;
        if( input.length ) {
            input.val(log);
        } else {
            if( log ) alert(log);
        }
    });
}

我在表格上有这个字段:

<form id='formarea'>
<div class="form-group">
                                <label class="col-lg-3 control-label">Documento Adjunto:</label>
                                <div class="col-lg-12 has-warning">
                                    <div class="input-group">
                                        <span class="input-group-btn">
                                            <span class="btn btn-primary btn-file">
                                                buscar&hellip; <input id='file' type="file" name='i_file_1'>
                                            </span>
                                        </span>
                                        <input type="text" class="form-control" readonly>
                                    </div>
                                </div>
                            </div>
</form>

问题是onchange是两次alert / alert('test'); /的javascript两次出现。 我需要输入填充文件的状态才能启动过滤器文件扩展。

2 个答案:

答案 0 :(得分:0)

你正在触发第二个事件,它在第一个事件中基本上做同样的事情。尝试将您的活动更改为功能并将其整合到一个&#34; .on(&#39;更改&#39;&#34;事件。

$('#formarea input').on('change', function() {
    //Do stuff here
});

答案 1 :(得分:-1)

似乎这些不需要包含在函数中。您可以在文档准备就绪时实例化它们并实现所需的结果,如下所示:

HttpServletResponseWrapper