0

私は次のフォームを持っています

<form:form id="form" name="form" target="dummyHiddenForm"  method="post" commandName="myForm" >

            <span class="container">
                <label>TestKey</label>
                <span class="container-right">
                    <form:input path="key" id="key" cssClass="text" maxlength="200" cssStyle="width:60%" disabled="true"/>
                    <input type="button" class="refreshIcon" style="width:auto;" onclick="javascript:refreshKey()" />
                </span>
            </span>

    <span style="width:auto; padding-left: 30%; padding-bottom: 4%; text-align:center; float:right; clear:both;">
        <input type="button" class="button" style="width:auto;" value="Submit" onclick="javascript:submitForm()"/>
    </span> 

</form:form>

<iframe id="dummyHiddenForm" name="dummyHiddenForm" style="display:none;" ></iframe>

フォームを含む上記のページの GET リクエストでは、オブジェクト myForm の各変数にデフォルト値をkey設定しており、 value に設定されています""。そして、refreshKey() の私の Java スクリプト関数は

function refreshKey(){
    document.getElementById('key').value = generateKey() ; 
}

このメソッドは正しく機能し、onclick は入力テキスト フィールドに新しいキーを設定します。

送信ボタンをクリックすると、Javaスクリプトを使用してフォームを送信しています

function submitForm(){
        var formVar = document.forms["form"];
        formVar.action = "/test.htm";
        formVar.submit();
}

しかし、私のコントローラー"" では、入力フィールドの実際の値に関係なく、キーの同じデフォルト値を取得します。

JavaScript を使用してみalertまし.valueたが、変更された値を確認できますが、実際の DOM では値が変更されません (少なくとも、Firefox から要素を検査すると、まだ表示されますvalue="")。

フォームが送信されたときに変更された値を取得する必要があります。何がうまくいかないのですか?

4

1 に答える 1