gpt4 book ai didi

javascript - 如何使tinyMCE编辑器在首次初始化后保留在我的jQgrid textarea formit表单中?

转载 作者:行者123 更新时间:2023-11-28 19:36:06 24 4
gpt4 key购买 nike

我有一个 jqgrid,我试图在文本区域中使用tinyMCE 在我的数据库中发送/存储 html 并重新加载到我的网格中。我有一个带有tinyMCE的自定义列作为文本区域,但是在我打开editform一次并在下次打开时关闭它之后,tinymce不会初始化,并且会出现一个常规文本区域。 (此外,当 url 模式时,它会失去焦点并专注于编辑表单。文本会粘贴到后面的“项目”字段(下图)。)我做错了什么?

我的 TineMCE“链接”失去焦点的原因是一个简单的语法错误。我在 editgrid 代码中有 modal:true 。

内联编辑实现更新以下是正确实现内联编辑的示例(谢谢@Oleg):DEMO1 | DEMO2

内联编辑工作代码示例:

   { name: "note", width: 260, sortable: false, editable: true,
//edittype: "textarea"
edittype:'custom',
editoptions: {
custom_element: function (value, options) {
var elm = $("<textarea></textarea>");
elm.val(value);
// give the editor time to initialize
setTimeout(function () {

try {
tinymce.remove("#" + options.id);
} catch(ex) {}
tinymce.init({selector: "#" + options.id, plugins: "link"});
}, 50);
return elm;
},
custom_value: function (element, oper, gridval) {
var id;
if (element.length > 0) {
id = element.attr("id");
} else if (typeof element.selector === "string") {
var sels = element.selector.split(" "),
idSel = sels[sels.length - 1];
if (idSel.charAt(0) === "#") {
id = idSel.substring(1);
} else {
return "";
}
}
if (oper === "get") {
return tinymce.get(id).getContent({format: "row"});
} else if (oper === "set") {
if (tinymce.get(id)) {
tinymce.get(id).setContent(gridval);
}
}
}}
}

url pasted to edit project "Project" field

jqGrid 列:

<script src="js/jquery-1.9.0.min.js" type="text/javascript"></script>
<script src="js/i18n/grid.locale-en.js" type="text/javascript"></script>
<script src="js/jquery.jqGrid.min.js" type="text/javascript"></script>
<script src="js/jquery-ui-1.10.3.custom.js" type="text/javascript"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.js"></script>
<script src="tinymce/tinymce.min.js"type="text/javascript"></script>
<script src="tinymce/jquery.tinymce.min.js"type="text/javascript"></script>
<script src= "tinymce/plugins/link/plugin.min.js" type="text/javascript"></script>
<script type="text/javascript">

...

{ name:'notes',
index:'notes',
edittype:'custom', editable:true,
editoptions:{
"custom_element":function( value , options) {
var elm = $('<textarea></textarea>');
elm.val( value );
// give the editor time to initialize
setTimeout( function() {
tinymce.init({selector: "textarea#notes",plugins: "link"});
}, 100);
return elm;
},
"custom_value":function( element, oper, gridval) {
if(oper === 'get') {
return tinymce.get('notes').getContent({format: 'row'});
} else if( oper === 'set') {
if(tinymce.get('notes')) {
tinymce.get('notes').setContent( gridval );
}
}
}}}

最佳答案

尝试将custom_element的代码替换为以下内容

custom_element: function (value, options) {
var elm = $("<textarea></textarea>");
elm.val(value);
// give the editor time to initialize
setTimeout(function () {
try {
tinymce.remove("#" + options.id);
} catch(ex) {}
tinymce.init({selector: "#" + options.id, plugins: "link"});
}, 50);
return elm;
}

再简单一点

关于javascript - 如何使tinyMCE编辑器在首次初始化后保留在我的jQgrid textarea formit表单中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25861647/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com