我试图在multipart / form-data格式中使用HTMLEditor:
<script>
function doSubmit() {
var editor = myEditor.down('#displayName');
var sName = editor.getValue();
var myForm = document.getElementById('myform');
myForm.sDisplayName.value = sName;
myForm.submit();
}
var myEditor;
Ext.onReady(function() {
myEditor = Ext.create("Ext.panel.Panel", {
height: 100,
width: 552,
renderTo: 'richtext',
items:[{
xtype: 'htmleditor',
itemId: 'displayName',
name: 'displayName',
fontFamilies: [...],
height: 100,
width: 550,
border: 0,
value: ...,
}]
});
myEditor.down('#displayName').focus();
myEditor.show();
});
</script>
<form name="myform" id="myform" action="..." .method="post" enctype="multipart/form-data">
...
...
<div id="richtext"></div>
</form>
表格中还包含“确定”字样。单击时调用doSubmit()的按钮,以及隐藏的输入参数sDisplayName以及其他几个输入字段和文件输入。
生成的textarea元素具有空名称属性。 Chrome和Firefox只是在生成POST请求时省略它,我很好,但IE包含请求中生成的textarea元素的值。由于textarea输入名称为空,因此param名称也为空,这在另一个JSP处理请求时会导致麻烦。这是它在IE网络嗅探器中的外观:
Content-Disposition: form-data; name=""
<FONT style="FONT-FAMILY: Arial; FONT-SIZE: 36px">My Text</FONT>
这被视为无效请求,请求处理失败(应该如此)
为什么使用空白名称生成textarea元素?我希望名称配置用作HTML名称属性。有人知道一个workaroud,比如阻止IE提交textarea输入吗?我尝试将submitValue配置设置为false,也尝试在提交之前将disabled config设置为true - 没有成功。