【问题标题】:Thymeleaf pass data from html id to thymeleaf variableThymeleaf 将数据从 html id 传递到 thymeleaf 变量
【发布时间】:2018-07-14 18:31:12
【问题描述】:

下面的代码有问题。我需要将一个变量从 html id 传递给 thymeleaf 变量。

<table class="responsive-table highlight bordered">
    <thead>
    <tr>
        <th>Id</th>
        <th>Name</th>
        <th>Surname</th>
        <th>Email</th>
    </tr>
    </thead>

    <tbody>
    <tr th:each="worker: ${workersList}">
        <td th:text="${worker.id}"></td>
        <td th:text="${worker.name}"></td>
        <td th:text="${worker.surname}"></td>
        <td th:text="${worker.email}"></td>

        <td>
            <a href="#deleteModal" class="btn tooltipped modal-trigger" th:attr="data-id=${worker.id}, data-name=${worker.name +' '+ worker.surname}"
               data-position="top" data-delay="50" data-tooltip="Delete"><i class="material-icons">delete</i></a>
        </td>
    </tr>

    <!-- Delete Modal -->
    <div id="deleteModal" class="modal modal-fixed-footer">
        <div class="modal-content">
            <p id="modal-name"></p>
            <p id="modal-id"></p>
        </div>
        <div class="modal-footer">
            <a th:href="@{'/delete/'+${modal-id} }" class="modal-action modal-close waves-effect waves-red btn-flat">Yes</a>
        </div>
    </div>

    </tbody>
</table>

<script th:inline="javascript">
    $('#deleteModal').modal({
        ready: function(modal, trigger) {
            var button = $(trigger);
            var id = button.data('id');
            $('#modal-id').html(id);
        }
    });
</script>

这行不通。我必须使用 js 传递它,因为这个 id 是可变的,取决于我点击的工人。这可行,但它无法将 id 传递给 th:href 感​​谢您的帮助!

【问题讨论】:

  • 目前还不清楚您要做什么,抱歉。可能将th:href="@{/delete/{id} (id=${modal-id})}" 更改为th:href="@{|/delete/${worker.id}}" 可能会有所帮助。
  • 我不能通过那里 ${worker.id} 因为通过它我总是只有所有工人列表中的第一个 id。
  • 尝试将&lt;a th:href="@{'/delete/'+${modal-id} }" class="modal-action modal-close waves-effect waves-red btn-flat"&gt;Yes&lt;/a&gt; 更改为&lt;a id="confirm" href="/delete/" class="modal-action modal-close waves-effect waves-red btn-flat"&gt;Yes&lt;/a&gt;$('#modal-id').html(id); 更改为var baseurl = $('#confirm').attr('href'); $('#confim').attr('href',baseurl + id);

标签: javascript java html spring thymeleaf


【解决方案1】:

他们按照您的方式完成,您需要使用 Javascript 来更新 ID,因为您的模式在循环之外。我会这样做:

<div class="modal-footer">
    <a id="idModalLink" href="#" class="modal-action modal-close waves-effect waves-red btn-flat">Yes</a>
</div>

在你的 javascript 代码中:

$('#deleteModal').modal({
    ready: function(modal, trigger) {
        var button = $(trigger);
        var id = button.data('id');
        $('#modal-id').html(id);
        $('#idModalLink').attr("href", "/delete/" + id);
    }
});

【讨论】:

  • 行不通。当我像这样创建
  • @johnson 哪个错误?如果您的控制器中的“modal-id”有一些价值,则必须工作。
  • 如何使用 html 中的 id 将其传递给 thymeleaf?我不为这个 id 使用控制器
  • 但是你从哪里得到这个 id 呢?
  • 只通过传递 ${worker.id} 就可以很容易地获取当前的工人 ID,但它总是只给我所有工人列表中的第一个工人。我已经进行了研究,但这是一个常见问题,帮助解决方案是使用这个 javascript。
猜你喜欢
  • 2020-09-02
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 2020-08-29
  • 1970-01-01
  • 1970-01-01
  • 2021-04-20
  • 2019-07-05
相关资源
最近更新 更多