Submitting a form with a Dojo Rich Text Editor

人盡茶涼 提交于 2019-12-10 10:19:07

问题


Does anyone out there know how to submit a form that contains a Dojo Rich Text Editor?

I've tried adding the "name" attribute to my element that is decorated with dojoType="dijit.Editor", however, I don't see any of the HTML on my receiving process.

I've checked the documentation and I don't see any clear example (other than connecting the on submit event of the form in question with another function that sets the data of a hidden input with the "value" of the Rich Text Editor").

I would assume there has to be some "easier" way to do this?


回答1:


Here im able to send the value to the server, and able to redisplay in the submitted value as intial display value for the Editor.

<html>
<head>
<style type="text/css">
    @import "http://ajax.googleapis.com/ajax/libs/dojo/1.5/dijit/themes/claro/claro.css";   
</style>        
<script src="djlib/dojo/dojo.js" type="text/javascript" djConfig="parseOnLoad:true"></script>   
 <link rel="stylesheet" href="djlib/dojox/grid/resources/Grid.css" type="text/css" />
<body class="claro">
    <?php if(count($_POST) > 0) {
            echo '<script>function dumpSubmittedEditorValue(){}</script>';
            echo "<script>var submittedEditorValue = '$_POST[ed1]'</script> ";
        } 
    ?>
    <form jsId="frm1" dojoType="dijit.form.Form" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
        <input type="hidden" name="ed1" />
        <span dojoType="dijit.form.Button">
            Submit
            <script type="dojo/method" event="onClick">
                frm1.submit();
            </script>
        </span>
    </form>
    <div  dojoType="dijit.Editor" id="editor1">         
        <script type="dojo/method">
            this.hiddenField = dojo.query("[name=ed1]")[0];
            //console.log(this.hiddenField);
            /*dojo.connect(this.document.body,'onload',function(){                  
                console.log("A");
                console.log(this.document.body);
            })*/
        </script>
        <script type="dojo/method" event="onChange" args="val">
            //1st format. <p>     hi - should be - <p>HI
            var str = dojo.string.trim(val);

            var tagsEncoded = dojox.html.entities.encode(str, encodecustomMap);
            var whiteSpaceEncoded= tagsEncoded.replace(/\s/ig,"%20");
            this.hiddenField.value = whiteSpaceEncoded;
            console.log(this.hiddenField.value)
            //console.log(dojox.html.entities.decode(whiteSpaceEncoded.replace(/%20/ig," "), decodecustomMap))


        </script>


    </div>
    <script>
        var decodecustomMap = [                 
                ["\u003C", "lt"],
                ["\u003E", "gt"],
                ["\u0026", "amp"]
            ];
            var encodecustomMap =  [
                ["\u003C", "lt"],
                ["\u003E", "gt"]
            ];
    </script>
</body>

<script>      
    dojo.require("dijit.Editor");
    dojo.require("dojox.html.entities");
    dojo.require("dijit.form.Form");

    dojo.addOnLoad(function(){
        console.log(dojo.query("iframe", dijit.byId("editor1").domNode))
        dojo.connect(dojo.query("iframe", dijit.byId("editor1").domNode)[0],'onload',function(){
            console.log(this.contentDocument.body)
            this.contentDocument.body.innerHTML = getEditorIntialValue();
        })
        function getEditorIntialValue(){
            if(typeof submittedEditorValue != "undefined"){
                submittedEditorValue = dojox.html.entities.decode(submittedEditorValue,decodecustomMap);
                submittedEditorValue  = submittedEditorValue.replace(/%20/ig,"&nbsp;");
                return submittedEditorValue;
                //dijit.byId("editor1").document.body.innerHTML = submittedEditorValue;
            }
            else{
                return "";
            }
        }

    })
</script>
</html>


来源:https://stackoverflow.com/questions/6073811/submitting-a-form-with-a-dojo-rich-text-editor

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!