我有一个包含不同字段且输入类型为" file"的表单。我使用fileupload jQuery库。
选择文件
致电
$('#some_id').fileupload().fileupload(
'send',
{
files: file,
url: widget.options.saveVideoUrl,
}
).success(
//...
(第一个文件上传调用init)
再次尝试选择文件。得到:没有选择文件,清除控制台等。
问题出现在管理区域中的电子商务框架 Magento2 中。 所描述的表单出现在诸如“滑出面板”之类的实体中。这意味着存在div块,并且使用javascript将此块包含在旁边块中。
<button onclick="jQuery('#new').modal('openModal')" .... >
<span>New</span>
</button>
以下是演示示例:
管理员网址:https://iwdagency.com/magento2/admin
用户名:admin
密码:admin123
打开产品/目录/ 选择任何产品 / 点击新类别
您应该看到以下小组:
在这样的面板上我已经通过php构造函数字段添加了:
<div class="admin__field field field-new_video_screenshot " data-ui-id="product-tabs-tab-google-experiment-fieldset-element-form-field-new-video-screenshot">
<label class="label admin__field-label" for="..." data-ui-id="product-tabs-tab-google-experiment-fieldset-element-file-image-label"><span>Preview Image</span></label>
<div class="admin__field-control control">
<input id="...." name="image" data-ui-id="product-tabs-tab-google-experiment-fieldset-element-file-image" value="" title="Preview Image" type="file">
</div>
</div>
脚本:
define([
'jquery',
'jquery/ui',
'Magento_Ui/js/modal/modal',
'mage/translate',
'mage/backend/tree-suggest',
'mage/backend/validation'
], function ($) {
'use strict';
$.widget('mage.newDialog', {
_create: function () {
var widget = this;
var newVideoForm = $('#new');
this.element.modal({
type: 'slide',
modalClass: 'mage-new-dialog form-inline',
title: $.mage.__('Create'),
buttons: [{
text: $.mage.__('Create'),
class: 'action-primary',
click: function (e) {
var file = $('#new_screenshot').get(0).files[0];
var result = $('#new_screenshot').fileupload().fileupload(
'send',
{
files: file,
url: widget.options.saveUrl,
}
).success(
function(result, textStatus, jqXHR)
{
var data = JSON.parse(result);
data['url'] = $('#new_url').val();
data['name'] = $('#new_name').val();
data['description'] = $('#new_description').val();
$('#media_gallery_content').trigger('addItem', data);
$('#new').modal('closeModal')
}
);
}
}],
});
}
});
return $.mage.newDialog;
});
答案 0 :(得分:0)
我发现了问题。
在我的情况下,问题出现在初始化fileUpload库之后。
当我选择输入:文件时,库未初始化(读作已感染)。当我按下按钮时,初始化运行并且使用此输入的任何操作都不可用。
解决方案如下:在感染之前克隆我们的输入,而不是我们的操作,最后用之前创建的健康副本替换现有的感染输入。