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() を呼び出す「OK」ボタン、および非表示の入力パラメーター sDisplayName と、他のいくつかの入力フィールドおよびファイル入力も含まれています。
問題は次のとおりです。
生成された textarea 要素の name 属性が空です。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 要素が空白の名前で生成されるのはなぜですか? name config が HTML name 属性として使用されることを期待します。IEがテキストエリア入力を送信できないようにするなど、回避策を知っている人はいますか? submitValue 構成を false に設定しようとしましたが、送信する前に無効な構成を true に設定しようとしましたが、成功しませんでした。