富文本编辑器(使用YUI简单文本编辑器)未将数据发送到下一页

Rich Text Editor (YUI Simple Text Editor used) not sending data to next page

本文关键字:编辑器 文本编辑 文本 数据 一页 使用 YUI 简单      更新时间:2023-09-26

我使用YUI中的一个简单文本编辑器,但当我单击提交时,文本区域/编辑器中的代码不会发送到下一页。我希望能够在后续页面上接收它,然后将其存储在数据库(MySql)中。我已经浪费了很多时间。请帮忙。HTML文件:

<html>
<head>
<script type="text/javascript" src="http://yui.yahooapis.com/combo?2.9.0/build/yahoo-dom-event/yahoo-dom-event.js&2.9.0/build/container/container_core-min.js&2.9.0/build/element/element-min.js&2.9.0/build/editor/simpleeditor-min.js"></script>
<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.9.0/build/editor/assets/skins/sam/simpleeditor.css" />
<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.8.2r1/build/assets/skins/sam/skin.css">
<!-- Utility Dependencies -->
<script src="http://yui.yahooapis.com/2.8.2r1/build/yahoo-dom-event/yahoo-dom-event.js"></script> 
<script src="http://yui.yahooapis.com/2.8.2r1/build/element/element-min.js"></script> 
<!-- Needed for Menus, Buttons and Overlays used in the Toolbar -->
<script src="http://yui.yahooapis.com/2.8.2r1/build/container/container_core-min.js"></script>
<script src="http://yui.yahooapis.com/2.8.2r1/build/menu/menu-min.js"></script>
<script src="http://yui.yahooapis.com/2.8.2r1/build/button/button-min.js"></script>
<!-- Source file for Rich Text Editor-->
<script src="http://yui.yahooapis.com/2.8.2r1/build/editor/editor-min.js"></script>
<script>
YAHOO.util.Event.on('submit', 'click', function() {
myEditor.saveHTML(); 
var html = myEditor.get('element').value;
});
(function() { 
        var Dom = YAHOO.util.Dom, 
        Event = YAHOO.util.Event; 
        var myConfig = { 
                height: '200px', 
                width: '900px', 
                dompath: true,                   
            }; 
        myEditor = new YAHOO.widget.SimpleEditor('msgpost', myConfig); 
        myEditor.render(); 

})();       
</script>
</head>
<body class="yui-skin-sam">
<form action="submit.php" method="post">
    <textarea name="msgpost" id="msgpost" cols="50" rows="10"></textarea>
<input type="submit" value="Submit" onsubmit="return myDoSubmit()"/>
</form>
</body>
</html>

您使用的saveHTML()方法似乎没有将值保存到textarea元素。因为浏览器不关心YUI编辑器,只提交textarea中已经存在的内容(为null),所以它将输入提交为null。。

您应该将textarea的值设置为编辑器值,以便浏览器提交该值而不是null。。使用这条细线可以实现:

document.getElementsById("msgpost").value = html;

看看这个工作Js我为你做的报价。

但是,您也有HTML语法错误。onSubmit属性应该在form元素上,而不是提交按钮上。

当您可以在表单提交时简单地调用函数时,收听事件是不实际的。。(参见JsFiddle)

我在这篇文章中看到了一个例子。

基本上,将其添加到myConfig:handleSubmit: true

myConfig将如下所示:

var myConfig = { 
            height: '200px', 
            width: '900px', 
            dompath: true,
            handleSubmit: true  
        };