Jquery绑定函数以动态创建上传控件

时间:2016-06-19 18:38:42

标签: javascript jquery

我有上传控件

<div id=bodyContent>       
    <input  id="fileupload" type="file" name="files[]" multiple  /> 
</div>

创建了服务器端。 此控件由以下函数使用:

$('#fileupload').fileupload({
    url: url,
    dataType: 'json',
    done: function (e, data) {
        //Do Something
    }
})

现在,使用javascript:

动态创建此控件
$('div[id *= bodyContent]').append(' <input id="fileupload" type="file" name="files[]" 
   multiple /> ');

我试图动态绑定该函数,如下所示,但没有成功。我不习惯做这种类型的转换,对此的任何帮助都将受到赞赏。

$('div[id*=bodyContent]').on('fileupload', 'input[id*=fileupload]', function ({
    url: url,
    dataType: 'json',
    done: function (e, data) {
         //Do Something
    }       
})

感谢。

2 个答案:

答案 0 :(得分:2)

id在同一个文档中应该是唯一的,所以请尝试将其替换为class属性,每次追加后再添加fileupload

$('<input class="fileupload" type="file" name="files[]" multiple/>').appendTo
   ('div[id*="bodyContent"]').each(function() 
{
    initFileUpload();
});

function initFileUpload()
{
    $('.fileupload').fileupload({
        url: url,
        dataType: 'json',
        done: function (e, data) {
            //Do Something
        }
    })    
}

希望这有帮助。

答案 1 :(得分:0)

正如其他人所说,fileinput不是由输入元素发出的事件。您想要关注“输入”或“更改”事件