KindEditor上传组件在modal中点击无响应

今天在modal中加上了KindEditor上传组件,组件初始化已成功,但是点击“点击上传附件”按钮无响应,不弹出上传窗口。尝试了百度提供的各种诸如修改z-index值、去掉modal的遮罩层、在弹出modal时初始化上传插件等方案均不生效。最后,在调试查看各组件的css属性时,找到了问题:

如图所示,在初始化后的上传组件中,响应上传事件的部分宽度为0.因此,点击无响应的原因主要是,实际上,点击时,并没有点击到上传部分,无法触发响应事件。

因此,解决的方案为:

在弹出弹层前,先将该上传插件的width属性设置为合适的宽度,也就是在js中补充一句:

  $("[type='file']").css("width","96px");

即可。

以下附上全部代码:

jsp弹层:

<!--  modal1 上传附件  -->
<div id="aModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"
     aria-hidden="true" style="display: none;">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
                <h4 class="modal-title">附件</h4>
            </div>
            <div class="modal-body">

                <form class="form-horizontal" id="aForm">

                    <h3>请上传附件!</h3>

                    <br/>

                    <div class="row">

                        <div class="col-md-12">
                            <div class="form-inline">
                                <label class="control-label col-sm-4">附件</label>
                                <div class="addDiv text-center  col-col-sm-8"><!--projectPlan-->
                                    <input type="button" id="fileUpload" value="点击上传附件"/>
                                    <a href="" download="file1" id="downUrl7"></a>

                                    <i id="fileName7"></i>

                                    <input type="hidden" id="fileName"
                                           name="fileName"/>
                                    <input type="hidden" id="fileUrl"
                                           name="fileUrl"/>
                                </div>
                            </div>
                        </div>

                    </div>

                </form>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">关闭</button>
                <button type="button" class="btn btn-info waves-effect waves-light" οnclick="save()">保存
                </button>
            </div>
        </div>
    </div>
</div><!-- /.modal -->

z在js中,要先初始化上传组件

KindEditor.ready(function (K) {
    var uploadbutton = K.uploadbutton({
        button: K('#fileUpload'),
        fieldName: 'uploadFile',
        url:  '/uploadFile',
        afterUpload: function (data) {

            console.info(data);

            if (data.error == 0) {
                $('#fileName').val(data.fileName);
                $('#fileUrl').val(data.url);
                $('#downUrl7').attr('href', data.url)
                    .attr('style', 'color: blue;');
                $('#downUrl7').html('点击下载');
                $('#downUrlg').hide();
                $('#fileName7').html(data.message + '<br/>' + data.fileName);


            } else {
                alert(data.message);
            }
        },
        afterError: function (str) {
            alert('自定义错误信息: ' + str);
        }
    });

    uploadbutton.fileBox.change(function (e) {
        uploadbutton.submit();
    });
});

最重要的一点,弹出弹层前初始化上传插件的width属性:

 $("[type='file']").css("width","96px");
 $("#aModal").modal("show");
 $("#aModal").modal("show");
扫描二维码关注公众号,回复: 8680831 查看本文章
发布了102 篇原创文章 · 获赞 91 · 访问量 54万+

猜你喜欢

转载自blog.csdn.net/sinat_32034679/article/details/80590205