私は次のフォームを持っています
<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=""
)。
フォームが送信されたときに変更された値を取得する必要があります。何がうまくいかないのですか?