[英]Spring form changed value in not getting reflected in ModelAttribute
我有以下表格
<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
設置為值""
。 我的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=""
)。
提交表單時,我需要獲取更改后的值。 有什么建議怎么回事?
找出解決方法。 該問題是由於禁用的屬性引起的,即disabled="true"
。 盡管Java腳本具有訪問權限,並且可以修改輸入的value
屬性,但是提交spring表單時,它不會反映出來。 我一開始就懷疑模型屬性綁定沒有問題。 在禁用的屬性關閉的情況下工作正常。
但是,如果你仍然想使你的輸入字段不可編輯的還有另一種屬性readonly
,你可以設置為true。 使用javascript更改值,該值會反映在表單提交的model屬性中。
<form:input path="key" id="key" cssClass="text" maxlength="200" cssStyle="width:60%" readonly="true"/>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.