2015-02-23 32 views
1

我試圖從grails中將某些值從視圖傳遞給控制器​​。這裏是我的代碼,試圖做到這一點:在控制器中找不到Grails輸入字段參數

<g:form controller="renter" action="processpayment"> 
    <div style="margin:0 auto;width:100%"> 
     <input type="checkbox" id="toggle"/> 
     <label for="toggle">Toggle</label> 
     <label for="allInputAmount">All Input Amount</label> 
     <g:textField name="allInputAmount" value="${0}" type="number"/> 
     <label for="difference">Difference</label> 
     <input id="difference1" name="difference1" type="hidden" value="${calculatedAmount}"/> 
     <g:textField name="difference" type="number" value="${calculatedAmount}" disabled="true"/> 
     <label for="calculatedAmount">Calculated Amount</label> 
     <input name="calculatedAmount1" type="hidden" value="${calculatedAmount}"/> 
     <g:textField name="calculatedAmount" value="${calculatedAmount}" type="text" disabled="true"/> 
     <hr/> 
    </div> 


    <div style="margin:0 auto;width:100%;clear:both"> 

     <div style="width:25%;float:left"> 
      <g:each var="renter" in="${renters}"> 
       <g:if test="${renter.name.startsWith("A")}"> 
        <g:checkBox class="checkbox" name="${renter.name}" value="${false}" 
           checked="false">${renter.name}</g:checkBox> 
        <label for="${renter.name}">${renter.name}</label> 
        <br/> 
       </g:if> 
      </g:each> 
     </div> 

     <div style="width:25%;float:left"> 
      <g:each var="renter" in="${renters}"> 
       <g:if test="${renter.name.startsWith("B")}"> 
        <g:checkBox class="checkbox" name="${renter.name}" value="${false}" 
           checked="false">${renter.name}</g:checkBox> 
        <label for="${renter.name}">${renter.name}</label> 
        <br/> 
       </g:if> 
      </g:each> 
     </div> 

     <div style="width:25%;float:left"> 
      <g:each var="renter" in="${renters}"> 
       <g:if test="${renter.name.startsWith("C")}"> 
        <g:checkBox class="checkbox" name="${renter.name}" value="${false}" 
           checked="false">${renter.name}</g:checkBox> 
        <label for="${renter.name}">${renter.name}</label> 
        <br/> 
       </g:if> 
      </g:each> 
     </div> 

     <div style="width:25%;float:left"> 
      <g:each var="renter" in="${renters}"> 
       <g:if test="${renter.name.startsWith("D")}"> 
        <g:checkBox class="checkbox" name="${renter.name}" value="${false}" 
           checked="false">${renter.name}</g:checkBox> 
        <label for="${renter.name}">${renter.name}</label> 
        <br/> 
       </g:if> 
      </g:each> 
     </div> 
     <g:actionSubmit value="submit" controller="renter" action="processpayment"/> 

    </div> 
</g:form> 

其中,這是非常重要的主體部分是這個div:

<div style="margin:0 auto;width:100%"> 
     <input type="checkbox" id="toggle"/> 
     <label for="toggle">Toggle</label> 
     <label for="allInputAmount">All Input Amount</label> 
     <g:textField name="allInputAmount" value="${0}" type="number"/> 
     <label for="difference">Difference</label> 
     <input id="difference1" name="difference1" type="hidden" value="${calculatedAmount}"/> 
     <g:textField name="difference" type="number" value="${calculatedAmount}" disabled="true"/> 
     <label for="calculatedAmount">Calculated Amount</label> 
     <input name="calculatedAmount1" type="hidden" value="${calculatedAmount}"/> 
     <g:textField name="calculatedAmount" value="${calculatedAmount}" type="text" disabled="true"/> 
     <hr/> 
    </div> 

在這裏我們可以看到一些隱藏字段(difference1和calculatedAmount)

奇怪的是,當我提交表單時,控制器中的params中找不到字段差異和calculateAmount。這就是爲什麼我不得不創建一個名稱爲difference1和calculatedAmount1的新隱藏字段

我想知道爲什麼和無法在任何地方找到解決方案。我正在使用grails 2.3.7。

回答

3

我不認爲禁用字段應與請求一起提交。也許你真正想要的是隻讀而不是禁用。

+0

啊啊呀!情況正是如此。謝啦!! – rahulserver 2015-02-23 13:15:11