【问题标题】:Keep a div visible after form submission提交表单后保持 div 可见
【发布时间】:2013-11-12 19:55:28
【问题描述】:

我有一个 div,<div class="sectionCarouselCapabillities"> ... </div>,默认情况下它是隐藏的,除非您更改下拉菜单。所以如下:

    $('.carouselUser').change(function(){
        $('.sectionCarouselCapabillities').show()
    });

States that when select box - with class: carouselUser changes state, we show the div sectionCarouselCapabillities.很好用。

有问题?

表单提交后,div 不再可见,因为它们的下拉菜单没有变化...

那么我必须改变什么才能使它在更改后显示并保持可见之后表单提交

【问题讨论】:

  • 表单提交重新加载页面。对 dom 所做的更改不会在页面加载之间进行。使用 cookie 或 localStorage 来跟踪项目何时应显示或隐藏,或更改表单提交以使用 ajax。
  • @Jason 上的同上,如果您可以选择使用 AJAX 而不是帖子,我也建议使用它
  • 而不是使用 cookie 将其烘焙到您的后端页面构建器中(无论您使用什么技术)。只有在没有值的情况下才添加隐藏。 IE。如果条目不存在隐藏,否则不隐藏。或者使用@Gobo 所说的并使用ajaz。
  • 或者,如果您可以使用任何其他规则来确定该部分是否应该显示,您可以在页面加载时关闭显示。例如,您是否可以假设,只要不选择默认选择,div 就应该显示?

标签: javascript jquery html css selection


【解决方案1】:

您可能想要添加一个类,而不是使用 show():

$('.carouselUser').change(function(){
    $('.sectionCarouselCapabillities').addClass('is-active');
});

在你的 CSS 中:

.sectionCarouselCapabillities.is-active { display: block; }

在服务器端,您可以检查表单是否已发布。如果是这样,请在 div 上添加 is-active 类。

【讨论】:

    【解决方案2】:

    我认为在这种情况下,您需要在下拉列表更改时设置一个 cookie,然后在表单提交后读取 cookie。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-08
      • 2015-04-23
      • 2019-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-15
      相关资源
      最近更新 更多