我试图从子函数调用输入属性值。
代码就在这里:
$("input.ups").fileinput({
uploadUrl: "/imalatci/products/uploadimages",
allowedFileExtensions: ["jpeg","jpg", "png", "gif"],
maxImageWidth: 500,
maxImageHeight: 400,
maxFileCount: 5,
resizeImage: true,
language:"tr",
uploadExtraData: function() {
return {
product_id: $(this).attr('product_id')
};
}
}).on('filepreupload', function() {
$('#kv-success-box').html('');
}).on('fileuploaded', function(event, data) {
$('#kv-success-box').append(data.response.link);
$('#kv-success-modal').modal('show');
});
我希望在此函数中获得$(" input.ups")product_id属性:
uploadExtraData: function() {
return {
product_id: $(this).attr('product_id')
};
}
但它会出现undefined
错误?
我们如何解决这个问题?
答案 0 :(得分:1)
this
函数中uploadExtraData
的范围不是插件实例化的input.ups
元素。要实现您的要求,您需要单独循环它们,以便获得对元素的引用。试试这个:
$("input.ups").each(function() {
var $input = $(this);
$input.fileinput({
uploadUrl: "/imalatci/products/uploadimages",
allowedFileExtensions: ["jpeg","jpg", "png", "gif"],
maxImageWidth: 500,
maxImageHeight: 400,
maxFileCount: 5,
resizeImage: true,
language:"tr",
uploadExtraData: function() {
return { product_id: $input.attr('product_id') };
}
}).on('filepreupload', function() {
$('#kv-success-box').html('');
}).on('fileuploaded', function(event, data) {
$('#kv-success-box').append(data.response.link);
$('#kv-success-modal').modal('show');
});
});
我还建议使用data-*
属性,而不是像product_id
这样的非标准属性。