使按钮永久消失

时间:2018-09-16 03:16:14

标签: javascript jquery html

我有一种情况,当用户单击页面A中的按钮时,该按钮将消失并转到页面B。当用户返回页面A时,该按钮仍将消失。是否有可能做到这一点?这听起来合乎逻辑吗?

<table>
        <tr>
            <th>Booking Number</th>
            <th>checkin</th>
            <th>checkout</th>
            <th>Num. of days</th>
            <th>Total Charges</th>
            <th>Breakfast</th>
            <th>accommodation ID</th>
        </tr>
    <c:forEach items="${books}" var="book">
            <tr>
                <td><c:out value="${book.bookingnum}" /></td>
                <td><c:out value="${book.checkin}" /></td>
                <td><c:out value="${book.checkout}" /></td>
                <td><c:out value="${book.numofdays}" /></td>
                <td><c:out value="${book.totalcharges}" /></td>
                <td><c:out value="${book.bfast}" /></td>
                <td><c:out value="${book.accid}" /></td>
                <td>
                <form name="reserveSubmitForm" method="post" action="Payment1Controller?action=createPayment&bookingnum=<c:out value="${book.bookingnum}"/>">
                <input  type="submit" class="btn btn-primary btn-block" value="Pay">onclick="style.display = 'none'"
                <input type="hidden" name="totalcharges" id="totalcharges" value="${book.totalcharges}"/>
                </form>
                </td>
            </tr>
    </c:forEach>
</table>

2 个答案:

答案 0 :(得分:2)

单击按钮后,可以在sessionStorage中设置一个值。另外,在页面加载时,请检查该值是否存在于sessionStorage中,如果存在,请隐藏该按钮。例如:

<a href="foo">foo</a>

JS:

const a = document.querySelector('a');
if (sessionStorage.clickedA) a.style.display = 'none';
a.addEventListener('click', () => {
  sessionStorage.clickedA = 'clicked';
});

https://jsfiddle.net/qfsuLyc3/

我认为cookie不是一个好主意,因为它的信息似乎只与客户端有关,而与服务器无关。 (Cookie将发送到服务器)

sessionStorage在页面会话中保持不变。如果您希望即使在重新打开浏览器后也隐藏按钮,请改用localStorage,它使用文件系统而不是内存,并且是持久的。

答案 1 :(得分:0)

如果您暂时想使用此功能,则可以使用 GET 方法。您可以在第二页到第一页的URL中传递一个附加值,并检查该值是否存在。

示例:

<a href="pageOne.php?movingback=true">Go To Page One</a>

在第一页上,检查后退的存在(我正在使用php进行相同操作)

<?php if(!isset($_GET['movingback']) || !$_GET['movingback']=='true'){
  echo "<a href='pagetwo.php'>Go To Page Two</a>"
}