Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Submit the dijit editor contents

I am trying to learn the dijit editor. I want to replace an existing text area with dijit editor widget.So I wrote 2 jsps - one using the dijit.Editor which feeds another jsp with the editor contents. When I click submit the second jsp "result" comes up empty contents for the editor no matter what is typed in text area editor.

dijitEditor.jsp

  <script type="text/javascript">
    dojo.require("dijit.Editor");
    dojo.require("dijit._editor.plugins.LinkDialog");
    dojo.require("dijit._editor.plugins.AlwaysShowToolbar");
  </script>
  <script type="text/javascript">
     dojo.addOnLoad(function(){
        alert("addOnLoad function");  
        dojo.connect(dojo.byId('form1'), 'onsubmit', function(){
            dojo.byId('editorContent').value= dijit.byId('content').getValue();
            alert("Hidden variable");
            alert(dojo.byId('editorContent').value);
            alert("Editor content");
            alert(dijit.byId('content').getValue());
         });
      });

</script>                   
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dijit/themes/claro/claro.css" />
</head>

  <body class=" claro ">
  <FORM id="form1" METHOD=POST ACTION="result.jsp">

  <table>
    <tr>
        <td>
        <input type="hidden" name="editorContent" />
            <div dojoType="dijit.Editor" id="content" onChange="console.log('editor1 onChange handler: ' + arguments[0])"
                plugins="['foreColor','|','bold','italic','underline','|','createLink', 'unlink']"
                extraPlugins="['dijit._editor.plugins.AlwaysShowToolbar']">
                    <p>
                        <b>This instance is created with a subset of functions enabled in the order
                        we want. </b>
                    </p>
                </div>
            </td>
        </tr>
        <tr>
            <td>
                  <input type="submit" value="Submit" name="action"/>
             </td>  
        </tr>
    </table>        
   </form>    
  </body>
</html>

result.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html >
    <head>
        <title>Editor contents </title> 
    </head>
    <body>
        <%
            String val = request.getParameter("editorContent");    
            out.println("Dijit editor contents ="+val);  
         %>     
    </body>
</html>
like image 935
SJ11 Avatar asked Jul 14 '11 15:07

SJ11


1 Answers

Instead of binding it to the form's onsubmit, try doing it via the widget's onChange

Give your hidden field an id:

<input type="hidden" name="editorContent" id='editorContent' />

Try this for the Editor's onChange (replacing the console.log() code you have there now.

onChange="dojo.byId('editorContent').value = this.getValue();"

Wait! As I was typing this I realized you are calling dojo.byId('editorContent') in your onsubmit but you have not assigned the id attribute to that form field. That's probably your issue and you needn't try my onChange method.

like image 99
Michael Berkowski Avatar answered Oct 14 '22 04:10

Michael Berkowski