输入字段不发送

时间:2018-08-15 17:14:24

标签: html spring-mvc thymeleaf

我有一个表,用户可以在其中输入一些值,并通过POST请求将这些输入传输到我的后端。

每行包含一个typebrand和一些输入字段,例如buypricebottomtopstop。 / p>

出于我可以将输入数据与后端数据连接的目的,获取有关每行唯一的品牌信息非常重要。

因此,我实现了一个隐藏的输入字段,该字段是必需的预定义值。

但是当我检查后端时,我仅收到有关buypricebottomtopstop的数据。 但是brand一无所获。

相关段落:

        <td th:text="${car.getBrand()}">
            <input type="text" name="brand" th:value="${car.getBrand()}" hidden>
        </td>

这是完整的表格(我使用thymleaf作为模板引擎)

<div class="container">

  <br>
  <h4 style="text-align: center">Please specify below</h4>
  <br>
  <form method="POST">
    <table id="buyTable" class="table table-hover">
      <thead>
        <tr>
          <th>Type</th>
          <th scope="col">Brand</th>
          <th scope="col">Buy-Price</th>
          <th scope="col">Bottom</th>
          <th scope="col">Top</th>
          <th scope="col">Stop</th>
          <th>Reduce</th>
          <th>Start</th>
        </tr>
      </thead>
      <tbody>
        <tr th:each="car : ${cars}">
          <td>
            <select th:id="${car.getBrand()}" title="selectBuyOrSell" onchange="updateBuyTable(this)">>
              <option value="buy">Buy</option>
              <option value="sell">Sell</option>
            </select>
          </td>
          <td th:text="${car.getBrand()}">
            <input type="hidden" name="brand" th:value="${car.getBrand()}">
          </td>
          <td><input type="number" step="0.00000001" placeholder="Enter price" name="buyPrice" /></td>
          <td><input type="number" step="0.00000001" placeholder="Enter bottom" name="bottom" /></td>
          <td><input type="number" step="0.00000001" placeholder="Enter top" name="top" /></td>
          <td><input type="number" step="0.00000001" placeholder="Enter stop" name="stop" /></td>
          <td>
            <label class="custom-control custom-checkbox">
                            <input id="clickboxReduce" type="checkbox" class="custom-control-input"
                                   onclick="handleClickOnStart(this)" checked>
                            <span class="custom-control-indicator"></span>
                        </label>
          </td>
          <td>
            <label class="custom-control custom-checkbox">
                            <input id="clickboxStart" type="checkbox" class="custom-control-input"
                                   onclick="handleClickOnReduce(this)" checked>
                            <span class="custom-control-indicator"></span>
                        </label>
          </td>
          <!--                <td><input id="clickboxReduce" type="checkbox"></td>
                                    <td><input id="clickboxStart" type="checkbox"></td>-->
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td><a style="float:right">Select all</a></td>
          <td style="text-align:center"><input type="checkbox" onclick="checkReduce(this)" checked></td>
          <td style="text-align:center"><input type="checkbox" onclick="checkInstant(this)" checked></td>
        </tr>
      </tbody>
    </table>
    <br/>
    <br/>
    <button style="float: right!important;" class="btn btn-outline-primary">Continue</button>
    <br/>
    <br/>
    <br/>
    <table id="sellTable" class="table table-hover" hidden="true">
      <thead>
        <tr>
          <th>Type</th>
          <th>Brand</th>
          <th scope="col">Sell-Price</th>
          <th scope="col">Amount</th>
        </tr>
      </thead>
      <tbody>
        <tr>
        </tr>
      </tbody>
    </table>
  </form>
</div>

因此,实际上这仅与获得品牌有关。有想法吗?

谢谢

1 个答案:

答案 0 :(得分:0)

我发现td标记中的th:text="${car.getBrand()}"覆盖了隐藏的输入字段。

因此解决方案是在td标签中添加一个标签和一个隐藏的输入。

   <td>
     <a th:text="${car.getBrand()}"></a>
     <input type="hidden" name="brand" th:value="${car.getBrand()}"/>
   </td>