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

时间:2013-07-04 12:27:58

标签: javascript yui rich-text-editor

我正在使用YUI的简单文本编辑器,但是当我单击提交时,textarea / editor中的代码不会发送到下一页。我希望能够在后续页面上接收它,然后将其存储在DB(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>

2 个答案:

答案 0 :(得分:1)

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

您应该将textarea的值设置为编辑器值,以便浏览器提交该值而不是null。可以使用以下一行来实现:

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

看到我为你所做的工作JsFiddle

但是,您也遇到HTML语法错误。 onSubmit属性应位于form元素而不是提交按钮上。

当你在表格提交时简单地调用一个函数时,听这个事件是不切实际的。(参见JsFiddle)

答案 1 :(得分:0)

我在post上看到了一个例子。

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

myConfig将如下所示:

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