1

我正在尝试在 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 名称属性。有谁知道解决方法,比如阻止 IE 提交 textarea 输入?我尝试将 submitValue 配置设置为 false,还尝试在提交之前将禁用的配置设置为 true - 没有成功。

4

0 回答 0