当前位置:首页 > LayUI > 关键词 > codemirror > 正文

layui整合codemirror解决获取不到textarea值的方法

近期在使用thinkphp+layui+codemirror开发的时候,发现一直获取不到textarea的值。百度后发现是codemirror的一个坑。

近期在使用thinkphp+layui+codemirror开发的时候,发现一直获取不到textarea的值。百度后发现是codemirror的一个坑。

codeMirror先从 textarea中读取值放到codemirror动态生成的div中,根据textarea中的换行个数确定行数,根据正则表达来高亮语法。这就有个问 题,当你在页面上对语法做出修改提交表单时,其实只是在codemirror上的动态div上做出修改,当form表单提交时,原来textarea值并没有变化。

<textarea id="code" name="code">{$code}</textarea>
<script>
    layui.use(['form', 'layer','layedit'], function () {
        var form = layui.form, layer = layui.layer, $= layui.jquery;
        var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
		  mode: "application/xml",
		  styleActiveLine: true,
		  lineNumbers: true,
		  lineWrapping: true
	});
	form.on('submit(submit)', function (data) {
	    var loading = layer.load(1, {shade: [0.1, '#fff']});
	    var content = editor.getValue();//此处获取code的值
            $.post("", {content:content}, function (res) {
                layer.close(loading);
                if (res.code > 0) {
                    layer.msg(res.msg, {time: 1800, icon: 1}, function () {
                        location.href = res.url;
                    });
                } else {
                    layer.msg(res.msg, {time: 1800, icon: 2});
                }
            });
        });
    });
</script>

本文属原创,转载请注明原文:https://www.zhimatong.com/jiaocheng/705.html

为保证教程的实用性及扩大知识面覆盖,如果您有相似问题而未解决,可联系在线客服免费技术支持。

点赞 1