簡體   English   中英

Spring表單更改了值,未反映在ModelAttribute中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM