代码之家  ›  专栏  ›  技术社区  ›  Geoff_S

tinymce在modal中,将数据传递给div后,modal将不会重新打开。

  •  1
  • Geoff_S  · 技术社区  · 6 年前

    我当前正在运行一个具有placeholder div的HTML模板,当用户单击 div ,将弹出一个带有tinymce实例的模式。到现在为止,一直都还不错。

    Tinymce可以在这里添加文本/内容,然后点击一个按钮,关闭模式并将内容传递到占位符中。 div 格式相同。(就像用户查看静态页面的模板一样,他们希望插入内容,这样模式允许他们使用tinymce进行此操作,然后点击按钮在“实时”模板中查看)。

    不管怎样,这个很好用。问题是,如果你发现一个错误或打字错误,需要再次打电话给Tinymce,它将无法工作。一旦内容传递到 div ,单击时不再触发模式 div . 无论如何,我不是一个javascript专家,所以我确信这方面有问题。

    这是密码。一切按预期工作,但我只需要保持单击 div 加载模式以编辑Tinymce中的内容:

    <div class="row middle">
      <div class="col-lg-12 fullWidth">
        <div class="fullContent" style="background-color: white; height: 100%;">
          <div class="modal fade bd-example-modal-lg" id="fullModal" tabindex="-1" role="dialog" aria-labelledby="fullLabel" aria-hidden="true">
            <div class="modal-dialog modal-lg" role="document">
              <div class="modal-content">
                <div class="modal-header">
                  <h5 class="modal-title" id="fullModal">Content Library:</h5>
                  <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                  </button>
                </div>
                <div class="modal-body">
                  <h3>Create your own content</h3>
                  <form id="form-data3" method="post">
                    <textarea class="original" id="mytextarea3" name="fullText"></textarea>
                    <input type="submit" value="Save Content">
                  </form>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <script>
      var $modalFull = $('#fullModal').modal({
        show: false
      });
    
      $('.fullWidth').on('click', function() {
        $modalFull.modal('show');
      });
    
      $(document).ready(function() {
        $("#form-data3").submit(function(e) {
          var content3 = tinymce.get("mytextarea3").getContent();
    
          $(".fullContent").html(content3);
          jQuery.noConflict();
          $('#fullModal').modal('hide');
          $('.modal-backdrop').remove();
          return false;
        });
      });
    </script>
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Louys Patrice Bessette    6 年前

    $(".fullContent").html(content3); ,您正在重写模式的标记。

    把它放在外面 div .

    <div class="row middle">
      <div class="col-lg-12 fullWidth">
        <div class="fullContent" style="background-color: white; height: 100%;">
    
        </div>
      </div>
    </div>
    
    <div class="modal fade bd-example-modal-lg" id="fullModal" tabindex="-1" role="dialog" aria-labelledby="fullLabel" aria-hidden="true">
      <div class="modal-dialog modal-lg" role="document">
        <div class="modal-content">
          <div class="modal-header">
            <h5 class="modal-title" id="fullModal">Content Library:</h5>
            <button type="button" class="close" data-dismiss="modal" aria-label="Close">
              <span aria-hidden="true">&times;</span>
            </button>
          </div>
          <div class="modal-body">
    
            <h3>Create your own content</h3>
            <form  id="form-data3" method="post">
              <textarea class="original" id="mytextarea3" name="fullText"></textarea>
              <input type="submit" value="Save Content">
            </form>
          </div>
        </div>
      </div>
    </div>