【问题标题】:Form save using ckeditor in asp.net and sql server在 asp.net 和 sql server 中使用 ckeditor 保存表单
【发布时间】:2016-12-18 09:27:20
【问题描述】:

我尝试使用 CKEditor 保存我的表单并添加自动保存功能意味着所有输入都会自动保存:

    <script>
    CKEDITOR.replace('Perfil_Descripcion');
</script>

<script>
    $('document').ready(function () {
        $('#preview').hide(); //Default setting
        for (instance in CKEDITOR.instances) {

            CKEDITOR.instances[instance].updateElement(); //fix texrarea update value

            CKEDITOR.instances[instance].on('key', function () { //save, here comes the error
                $("#btnUpdatePerfil").trigger('click');
            });

        }
    });
    //Save in db
    function CKUpdate() {
        for (instance in CKEDITOR.instances) {

            CKEDITOR.instances[instance].updateElement(); 


            $('#generalform').ajaxForm({ 
                target: '#preview',
                success: function () {
                    $('#preview').show('slow').delay(800).hide('slow');
                }
            });
        }
    }

                            <form id="generalform" method="get" action="?">

                            <h3 class="page-header">Descripcion sobre tu persona</h3>
                                        <div class="row">
                                            <div class="col-sm-12">
                                                <div class="form-group">
                                                    <!--<textarea id="editor" class="form-control"></textarea>-->
                                                    <textarea class="form-control" rows="9" id="Perfil_Descripcion" name="Perfil_Descripcion"></textarea>
                                                    <span id="preview"></span>
                                                </div><!-- /.form-group -->
                                            </div>
                                        </div>
                                     </form>

我的问题是:

  1. 此自动保存 CKupdate()(参考行 -> 注释 //auto save )在我输入一些文本时触发,但有错误,因为保存它 有时。我不确定如何修复这个错误。
  2. 用户按保存后,每次用户都会触发保存功能 在 textarea 中插入任何字符串,几秒钟后我的浏览器 会挂。我认为这个 on('key', 不能正常工作或者可能需要 改成别的,比如点击功能,但也有bug,有时会保存。

我实际上想要做的是使用 CKEditor 创建 textarea 然后将值保存到 db 并创建一个函数以显示在 textarea 中以编辑内容。

另一个问题是我必须快速按下保存按钮。

【问题讨论】:

  • 如果有人知道如何做到这一点,与其他所见即所得,也很感激

标签: javascript jquery asp.net sql-server


【解决方案1】:

这在我的情况下很好用:

    <script type="text/javascript" src="ckeditor.js"></script>

    <asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine"></asp:TextBox>

    <asp:Button ID="Button1" runat="server" Text="Save" OnClick="Button1_Click" />

    <script type="text/javascript">
        CKEDITOR.replace('<%=TextBox1.ClientID %>');
    </script>

要让这个例子正常工作,你必须在页面指令中设置ValidateRequest="false",否则你会得到一个"A potentially dangerous Request.Form value was detected from the client" 错误。

如果你想在没有 PostBack 功能和代码开始的情况下使用 CKeditor,你可以这样做:

    <script type="text/javascript" src="ckeditor.js"></script>

    <textarea rows="9" id="Perfil_Descripcion" name="Perfil_Descripcion"></textarea>

    <input id="Button1" type="button" value="Save" onclick="saveText()" />

     <script type="text/javascript">
         CKEDITOR.replace('Perfil_Descripcion');

         function saveText() {
             //now you have the data from the editor in javascript
             var text = CKEDITOR.instances.Perfil_Descripcion.getData();
             alert(text);
         }
    </script>

您还可以从这里创建一个自动保存,创建一个使用setInterval 调用的javscript 函数,并使用CKEDITOR.instances.Perfil_Descripcion.getData() 保存编辑器中的文本

【讨论】:

  • 现在的问题是,当我想编辑时,我并不总是打印文本区域,所以有时会打印有时不会。但很好的答案。
  • 有人知道吗?
  • 我不确定您所说的打印是什么意思?您想将 CKEditor 的内容发送到物理打印机吗?
  • 不,不,我只想在编辑保存的文本时在文本区域中看到,抱歉我的英语不好
  • 您可以通过将CKEDITOR.replace 包装在一个函数中并使用按钮调用该函数来做到这一点。如果您根本不希望 textarea 可见,请将其包装在隐藏的 &lt;div&gt; 中,并在单击相同的编辑按钮时显示它。
猜你喜欢
  • 2014-03-19
  • 1970-01-01
  • 1970-01-01
  • 2020-01-28
  • 1970-01-01
  • 2018-06-07
  • 2011-04-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多