我正在尝试学习dijit编辑器。我想用dijit编辑器小部件替换现有的文本区域。所以我写了2个jsps- 一个使用dijit.Editor,它向另一个jsp提供编辑器内容。当我单击 提交时 ,无论在文本区域编辑器中键入什么内容,第二个jsp “结果 ”都会为编辑器显示空白内容。
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>
与其将其绑定到表单onsubmit,不如尝试通过小部件的onChange
onsubmit
onChange
给您的隐藏字段一个ID:
<input type="hidden" name="editorContent" id='editorContent' />
在编辑器中尝试此操作onChange(替换console.log()现在的代码)。
console.log()
onChange="dojo.byId('editorContent').value = this.getValue();"
等待! 当我键入此内容时,我意识到您正在呼叫dojo.byId('editorContent')您,onsubmit但尚未将id属性分配给该表单字段。那可能是您的问题,您无需尝试我的onChange方法。
dojo.byId('editorContent')
id