首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“微型编辑器”在“引导”弹出窗口关闭时不显示

问“微型编辑器”在“引导”弹出窗口关闭时不显示
EN

Stack Overflow用户
提问于 2021-01-23 18:03:36
回答 1查看 170关注 0票数 0

我使用的是TinyMCE编辑器5.6.1版本。每当我第一次加载弹出窗口时,就会得到以下内容:

​

​

当我关闭弹出并再次显示它时,我得到以下信息:

​

​

控制台中没有错误,加载弹出窗口非常简单:

代码语言:javascript
复制
<div class="modal" tabindex="-1" role="dialog" id="form-modal">
    <div class="modal-dialog modal-lg modal-dialog-scrollable">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title"></h5>
                <button type="button" class="close" data-dismiss="modal">
                    <span>&times;</span>
                </button>
            </div>
            <div class="modal-body">
            </div>
        </div>
    </div>
</div>

下面是调用Modal的代码

代码语言:javascript
复制
@{
    ViewData["Title"] = "Product Administration";
}

<br />

<div class="modal" tabindex="-1" role="dialog" id="form-modal">
    <div class="modal-dialog modal-lg modal-dialog-scrollable">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title"></h5>
                <button type="button" class="close" data-dismiss="modal">
                    <span>&times;</span>
                </button>
            </div>
            <div class="modal-body">
            </div>
        </div>
    </div>
</div>

<div class="shadow-lg p-1 mb-1 bg-primary rounded d-flex">
    <h5 class="text-white flex-grow-1">Product Administration ...</h5>
    <div>
        <a onclick="showInPopup('@Url.Action("AddEdit","Product",null,Context.Request.Scheme)','New Product')"
            class="btn btn-success text-white">
            <i class="fas fa-random"></i>New Product</a>
    </div>
</div>

下面是Modal的代码:

代码语言:javascript
复制
@model ProductEdit

@{
    Layout = null;
}

<script>tinymce.init({
        selector: 'textarea',
        menubar: false,
        plugins: [
            'advlist autolink lists link image charmap print preview anchor',
            'searchreplace visualblocks code fullscreen',
            'insertdatetime media table paste code help wordcount'
        ],
        toolbar: 'undo redo | formatselect | ' +
            'bold italic backcolor | alignleft aligncenter ' +
            'alignright alignjustify | bullist numlist outdent indent | ' +
            'removeformat | help',
        content_css: '//www.tiny.cloud/css/codepen.min.css'
    });</script>

<div class="row">
    <div class="col-lg-12">
        <form asp-action="AddEdit" asp-route-id="@Model.Id" onsubmit="return jQueryAjaxPost(this, RefreshMe, false);" autocomplete="off">
            <input type="hidden" asp-for="@Model.Id" />
            <div id="errValidation" class="alert alert-dismissible alert-danger" data-content="ok">
                <button id="closeValidation" type="button" class="close">&times;</button>
                <div id="errTitle" class="font-weight-bolder">Oh snap!</div>
                <div id="errDetails">An Error Occured!</div>
            </div>

            <div class="row">
                <div class="col-lg-4">
                    <div class="form-group">
                        <label asp-for="@Model.CategoryId" class="control-label"></label>
                        <select asp-for="@Model.CategoryId"
                                class="form-control"
                                asp-items="@(new SelectList(Model.ProductCategories,"Id","Display"))">
                        </select>
                        <span asp-validation-for="@Model.CategoryId" class="text-danger"></span>
                    </div>
                </div>
                <div class="col-lg-4">
                    <div class="form-group">
                        <label asp-for="@Model.SectionId" class="control-label"></label>
                        <select asp-for="@Model.SectionId"
                                class="form-control"
                                asp-items="@(new SelectList(Model.ProposalSections,"Id","Display"))">
                        </select>
                        <span asp-validation-for="@Model.SectionId" class="text-danger"></span>
                    </div>
                </div>
                <div class="col-lg-4">
                    <div class="form-group">
                        <label asp-for="@Model.ManufacturerId" class="control-label"></label>
                        <select asp-for="@Model.ManufacturerId"
                                class="form-control"
                                asp-items="@(new SelectList(Model.Manufacturers,"Id","Display"))">
                        </select>
                        <span asp-validation-for="@Model.ManufacturerId" class="text-danger"></span>
                    </div>
                </div>
            </div>

            <div class="row">
                <div class="col-lg-6">
                    <div class="form-group mb-2 has-warning has-feedback">
                        <label asp-for="@Model.InternalPartNumber" class="control-label"></label>
                        <input asp-for="@Model.InternalPartNumber" class="form-control"></>
                        <span asp-validation-for="@Model.InternalPartNumber" class="text-danger"></span>
                    </div>
                </div>
                <div class="col-lg-6">
                    <div class="form-group mb-2 has-warning has-feedback">
                        <label asp-for="@Model.ManufacturerPartNumber" class="control-label"></label>
                        <input asp-for="@Model.ManufacturerPartNumber" class="form-control"></>
                        <span asp-validation-for="@Model.ManufacturerPartNumber" class="text-danger"></span>
                    </div>
                </div>
            </div>

            <div class="form-group">
                <label asp-for="@Model.Description" class="control-label"></label>
                <input asp-for="@Model.Description" class="form-control" rows="2"></>
                <span asp-validation-for="@Model.Description" class="text-danger"></span>
            </div>

            <div class="row">
                <div class="col-lg-6">
                    <div class="form-group">
                        <label asp-for="@Model.SellPrice" class="control-label"></label>
                        <div class="input-group">
                            <div class="input-group-prepend">
                                <div class="input-group-text">
                                    <i class="fas fa-dollar-sign"></i>
                                </div>
                            </div>
                            <input asp-for="@Model.SellPrice" class="form-control"></>
                        </div>
                        <span asp-validation-for="@Model.SellPrice" class="text-danger"></span>
                    </div>
                </div>
                <div class="col-lg-6">
                    <div class="form-group">
                        <label asp-for="@Model.Cost" class="control-label"></label>
                        <div class="input-group">
                            <div class="input-group-prepend">
                                <div class="input-group-text">
                                    <i class="fas fa-dollar-sign"></i>
                                </div>
                            </div>
                            <input asp-for="@Model.Cost" class="form-control"></>
                        </div>
                        <span asp-validation-for="@Model.Cost" class="text-danger"></span>
                    </div>
                </div>
            </div>

            <div class="form-group">
                <label asp-for="@Model.ProductWebsite" class="control-label"></label>
                <input asp-for="@Model.ProductWebsite" class="form-control"></>
                <span asp-validation-for="@Model.ProductWebsite" class="text-danger"></span>
            </div>

            <div class="form-group">
                <label asp-for="@Model.Note" class="control-label"></label>
                <textarea asp-for="@Model.Note" class="form-control" rows="5"></textarea>
                <span asp-validation-for="@Model.Note" class="text-danger"></span>
            </div>

            <div class="d-flex">
                <div class="form-group mr-2">
                    <input asp-for="@Model.Active" />
                    <label asp-for="@Model.Active" class="control-label text-success"></label>
                </div>
                <div><button type="submit" value="Save" class="btn btn-success mr-2">Save Changes</button></div>
                <div><input type="reset" class="btn btn-warning"></></div>
            </div>
        </form>
    </div>
</div>

<script>

    $('#errValidation').hide();

    $(function () {
        $("#SectionId").chosen({ no_results_text: "Oops, Section not found!", disable_search_threshold: 4 });
        $("#CategoryId").chosen({ no_results_text: "Oops, Category not found!" });
        $("#ManufacturerId").chosen({ no_results_text: "Oops, Manufacturer not found!" });
    });

    
    $("#closeValidation").click(function () {
        $("#errValidation").hide();
    });
   
    function RefreshMe() {
        $('#products').DataTable().ajax.reload(null, false);
        showSuccessToast('Product Saved', 'top-center');
    }

</script>

showInPopup方法如下:

代码语言:javascript
复制
showInPopup = (url, title) => {
    $.ajax({
        type: "GET",
        url: url,
        success: function (res) {
            $('#form-modal .modal-body').html(res);
            $('#form-modal .modal-title').html(title);
            $('#form-modal').modal('show');
        }
    })
}

对可能发生的事有什么想法吗?如果我刷新页面,它只在第一次加载时再次工作。

谢谢。

-瓦尔

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-27 09:08:03

从第二张图片中,textare不是由tinymce呈现的,因为ajax返回的html不能由tinymce呈现。当页面正在生成时,TinyMCE可以工作。因此,更好的方法是使用@Html.Partial加载部分视图(ProductEdit)。

在“产品管理”视图中,更改模式主体。

代码语言:javascript
复制
        <div class="modal-header">
            <h5 class="modal-title">@Context.Request.Scheme</h5>
            <button type="button" class="close" data-dismiss="modal">
                <span>&times;</span>
            </button>
        </div>
        <div class="modal-body">
            @Html.Partial("addedit.cshtml",Model)
        </div>

更改此javascript方法。

代码语言:javascript
复制
    var showInPopup = (url, title) => {
        $('#form-modal').modal('show');
    }

并将tinymce.init({ //... })移动到此视图Product Administration。

然后,TinyMCE会很好地工作。

​

​

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65862628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档