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() を呼び出す「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 に設定しようとしましたが、成功しませんでした。

4

0 に答える 0